秘钥登录步骤
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