1.sshd_config



  选项不区分大小写,参数区分大小写。


sshd_config选项及参数
选项
默认值
说明
AcceptEnv不接受任何值

AddressFamily
any
any/inet/inet6
AuthorizedKeysFile.ssh/authorized_keys
授权密钥文件
HostbasedAuthenticationno
基于主机的客户端认证
AddressFamily

any/inet/inet6
port
22

ListenAddress


LoginGraceTime2m
连接失败等待时间
PasswordAuthentication
yes

PermitEmptyPasswords
no

PermitRootLoginyes

yes/without-password/forced-commands-only/no

PrintLastLog

yes

登录的时候显示如下信息:

Last login: Sat May 27 10:57:13 2017 from 172.200.36.71

Protocol
2

PubkeyAuthentication
yes
仅仅在协议2适用
UseDNS
yes



2.ssh_config



  影响ssh命令行为的参数,配置文件位于“/etc/ssh/ssh_config”、“~/.ssh/config”以及命令行参数(优先级依次升高)。


ssh提供的选项
选项
默认值
说明

-1

-2


使用协议1或协议2

-4

-6


使用地址协议ipv4或ipv6
-b

指定本地连接用地址
-E log_file

重定向标准错误到文件
-F configfile

/etc/ssh/ssh_config

~/.ssh/config

指定的优先级最高
-i identity_file

协议1:

    ~/.ssh/identity

协议2:

    ~/.ssh/id_dsa

    ~/.ssh/id_ecdsa

    ~/.ssh/id_ed25519

    ~/.ssh/id

私钥
-l login_name

指定用户

-p port

22
连接的端口
PasswordAuthentication
yes
yes/no
Protocol
2

1/2/2,1

"2,1" 表示当协议2不可用时,使用协议1

PubkeyAuthentication
yes

yes/no

仅仅适用于协议2

StrictHostKeyCheckingask

yes/no/ask

Are you sure you want to continue connecting (yes/no)?


  用户配置文件:

免去yes确认
StrictHostKeyChecking no
#IdentityFile ~/.ssh/identity
IdentityFile ~/.ssh/id_rsa
#IdentityFile ~/.ssh/id_dsa
服务监听
Port 22
Protocol 2
强制公钥验证
PubkeyAuthentication yes
#PasswordAuthentication no
user view



3.ssh密钥验证


  基于ssh协议创建管理密钥。基于 ssh1 version 创建 RSA 密钥;基于 ssh2 version 创建 RSA & DSA 密钥。在不给出必要选项时创建 ssh2 版的 RSA 密钥。用法上分为“用户验证”,和“主机密钥”;用户验证时,建议给密钥加密(长于10位),主机密钥建议不用加密。倘若加密后,密码忘记了,就只能重新生成密钥了。


-b    指定位数
-e    输出私钥的公钥内容
-f    指定密钥文件的文件名(包括输入输出)
-t    指定创建的密钥类型(RSA1 RSA DSA)
-l    打印公钥指纹


生成dsa密钥
# ssh-keygen -t dsa -b 1024 -f dsa.key
生成rsa密钥
# ssh-keygen -t rsa -b 2048 -f rsa.key
输出公钥,直接生成的和输出的公钥格式不同。
# ssh-keygen -e -f dsa.key
打印公钥指纹
$ ssh-keygen -l -f id_rsa.pub
2048 9f:e5:f5:fb:26:08:c9:71:48:b0:27:cf:f7:c4:74:a3 id_rsa.pub (RSA)


3.1.rsa非对称密钥身份验证

  我们使用的openssh-server默认就支持公钥验证登录(无需任何配置)。只需用工具生成密钥对即可。仅仅需要把公钥字符串保存到指定文件、设置好目录、文件属性即可。

$ ssh-keygen
$ cat id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 700 ~
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/*

上边设置了属性,当然要是执行的用户没有问题,属主、属组应该是没有问题的。



3.2.dsa非对称密钥身份验证



4.工具的公钥验证



4.1.ssh secure shell

4.1.1 生成登陆秘钥

“Edit”-〉“settings”,找到“keys”,生成秘钥。

使用rsa秘钥,默认设定,自定义秘钥名称。

找到公钥。上传到服务端。

 

4.1.2 要登陆的服务端设定

转换密钥格式

$ ssh-keygen -i -f 430g2 >> ~/.ssh/authorized_keys


 

退出当前登陆,或者直接重新登陆。

 

4.2.putty

4.2.1 使用puttygen生成秘钥对

 

4.2.2 转换秘要格式同上

 

4.2.3 选择认证秘钥

putty配置菜单,“连接”-〉“SSH”->“认证”,“浏览“认证秘钥文件”。



备份

ssh secure shell

  “Profiles”设定的是关联到某一台主机的配置信息,点击“File-Save Layout”生成“*.ssh2”;“Settings”配置的是全局配置信息,点击“File-Save Settings”生成default.ssh2”。两个一起配置会对所有连接生效。


putty

  备份注册表节点“HKEY_CURRENT_USER/Software/SimonTatham”。


4.3.Xshell



sshd_config_程序