登陆centos,切换用户,切换到你要免密码登陆的用户,进入到家目录
- 2
创建钥匙,
[xun@jzlinux ~]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/xun/.ssh/id_rsa):
/home/xun/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/xun/.ssh/id_rsa.
Your public key has been saved in /home/xun/.ssh/id_rsa.pub.
The key fingerprint is:
bb:0c:b3:05:0d:4c:22:46:1e:b9:a4:d5:dc:f4:0a:c3 xun@jzlinux
The key's randomart image is:
+--[ RSA 2048]----+
| .=+.oo |
| o++o+.. |
| +..E o . |
|. . o + |
| o S |
| . . |
| o o |
| * . |
| . o |
+-----------------+
[xun@jzlinux ~]$
按照流程走完后会在 ~/.ssh目录下(账户所在家目录下的.ssh目录)看到id_rsa, id_rsa.pub文件 第一个是私有密钥 第二个是拥有密钥
- 3
服务器配置
输入命令:vim /etc/ssh/sshd_config
#禁用root账户登录,如果是用root用户登录请开启
PermitRootLogin yes
# 是否让 sshd 去检查用户家目录或相关档案的权限数据,
# 这是为了担心使用者将某些重要档案的权限设错,可能会导致一些问题所致。
# 例如使用者的 ~.ssh/ 权限设错时,某些特殊情况下会不许用户登入
StrictModes no
# 是否允许用户自行使用成对的密钥系统进行登入行为,仅针对 version 2。
# 至于自制的公钥数据就放置于用户家目录下的 .ssh/authorized_keys 内
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
# 有了证书登录了,就禁用密码登录吧,安全要紧
PasswordAuthentication no
- 4
还记得 sshd_config 里面谈到的 AuthorizedKeysFile 这个设定值吧?该设定值就是在指定公钥数据应该要放置的文件名啰!所以,我们必须要到服务器端的 家目录下, 将 id_rsa.pub 数据附加到 authorized_keys 这个档案内才行,这里如果提示权限不够,可以换root账户操作
- 5
重启ssh服务,输入命令:
/bin/systemctl start sshd.service
- 6
把id_sra私钥下载客户端,使用xshell 5登陆,导入私钥就可以了
END
注意事项
- ~/.ssh/ 目录必须要是 700 的权限才行
- .ssh/authorized_keys的权限设置为644
- 那个 id_rsa 私钥的档案权限啦!他必须要是 -rw------- 且属于你的添加的账户,否则在未来密钥比对的过程当中,可能会被判定为危险而无法成功的以公私钥成对档案的机制来达成联机喔