秘钥登录步骤

ssh登录提供两种认证方式:口令(密码)认证方式和密钥认证方式。其中口令(密码)认证方式是我们最常用的一种,这里介绍密钥认证方式登录到linux/unix的方法。
使用密钥登录分为3步:
1、生成密钥(公钥与私钥);
2、放置公钥到服务器~/.ssh/authorized_key文件中;
3、配置ssh客户端使用密钥登录。

1. 生成密钥公钥与私钥

打开Xshell,在菜单栏点击“工具”,在弹出的菜单中选择“新建用户秘钥生成向导…”。

“秘钥类型”项选择“RSA”公钥加密算法,
“秘钥长度”选择为“2048”位密钥长度。

点击“下一步”,等待密钥生成。

继续“下一步”,“秘钥名称”中输入的是秘钥的文件名称。在“密码”处输入一个密码用于加密私钥,并再次输入密码确认。

点击“下一步”,密钥生成完毕。,将生成的公钥直接保存到文件。

linux下输入ssh-keygen -t rsa,输入密钥的名称,如:id和私钥加密密码,既完成密钥生成。生成的两个文件中,“id”为私钥,“id.pub”为公钥。

2、上传公钥到服务器:

使用到Xshell登录到服务器,进入到“~/.ssh/”目录,运行rz命令(如果没有rz命令,运行apt install lrzsz安装),将公钥文件(id.pub)发送到服务器,然后运行如下命令,将公钥导入到“authorized_keys”文件:

[root@localhost ~]# cd ~/.ssh/
[root@localhost .ssh]# rz
rz waiting to receive.
[root@localhost .ssh]# cat id.pub >> authorized_keys
[root@localhost .ssh]# chmod 600 authorized_keys

3、配置Xshell使用密钥认证方式登录到服务器:

打开Xshell,点击“新建”按钮,在“连接”栏目中,输入刚刚配置好公钥的IP地址和端口。
点击左侧的“用户身份认证”,切换到认证栏目,在“方法”选择“Public Key”认证,输入用户名(公钥所在的用户目录),在“用户秘钥”中选择上一步生成的私钥,“密码”中输入私钥的加密密码。
点击确定,ssh免密码登录配置完成。

服务器的配置

查看ssh的配置文件。

sudo vim /etc/ssh/sshd_config

要确保下面这三个项目前面没有#

RSAAuthentication yes 
PubkeyAuthentication yes 
AuthorizedKeysFile %h/.ssh/authorized_keys

#为了安全性,可以修改SSH端口
Port 222

#禁用root账户登录,非必要,但为了安全性,请配置
PermitRootLogin no

#有了证书登录了,就禁用密码登录吧,安全要紧
PasswordAuthentication no

重启一下ssh服务,这样ssh配置才能生效:

sudo service ssh restart