1.sshd_config
选项不区分大小写,参数区分大小写。
选项 | 默认值 | 说明 |
---|---|---|
AcceptEnv | 不接受任何值 | |
AddressFamily | any | any/inet/inet6 |
AuthorizedKeysFile | .ssh/authorized_keys | 授权密钥文件 |
HostbasedAuthentication | no | 基于主机的客户端认证 |
AddressFamily | any/inet/inet6 | |
port | 22 | |
ListenAddress | ||
LoginGraceTime | 2m | 连接失败等待时间 |
PasswordAuthentication | yes | |
PermitEmptyPasswords | no | |
PermitRootLogin | yes | 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”以及命令行参数(优先级依次升高)。
选项 | 默认值 | 说明 |
---|---|---|
-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 |
StrictHostKeyChecking | ask | 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
转载于:https://blog.51cto.com/sunnybay/1395418