很多时候,为了服务器安全,我们需要禁用服务器密码登录功能,使用public key的方式登录服务器。我们常用的windows下的软件xshell就可以通过这种方式登录。以xshell5为例,具体操作步骤如下:
- 点击“工具”菜单下的“新建用户密钥向导”
- 选择密钥类型为RSA,长度为2048位
- 按“下一步”生成公钥,再按“下一步”指定用户密钥的相关信息
- 点击“下一步”,选择公钥格式为SSH2-OpenSSH
- 可以把公钥的内容直接在服务器上注册,也可以点击“保存为文件”,把公钥先存在电脑本地,然后点击“完成”。这里,我把文件保存为id_rsa_2048.pub,存在我本地电脑了。
- 在linux服务器建立.ssh和authorized_keys文件
mkdir ~/.ssh –设置权限700
touch ~/.ssh/authorized_keys –设置权限600 - 设置下selinux
semanage fcontext -a -t ssh_home_t “.ssh(/.*)?”
restorecon -rv .ssh - 导入我们刚才生产的公钥id_rsa_2048.pub到服务器,执行
cat id_rsa_2048.pub >> ~/.ssh/authorized_keys - 修改sshd配置vim /etc/ssh/sshd_config
将以下注释去掉:
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys修改:
PasswordAuthentication yes
为:
PasswordAuthentication no - 重启sshd服务
service sshd restart - 使用public登录
此时,应该已经可以登录了,你也可以把私钥导出,在别的机器上在导入私钥继续使用。
导入的时候,会提示你输入前面第3步输入的用户密钥加密密码,请输入正确的密码即可导入。
使用xshell免密码登录服务器教程