目录
xshell生成公钥私钥并实现登录
ssh登录提供两种认证方式。
1.采用口令认证方式(较为常用)
2.另外一种则是使用公钥和私钥进行登录
采用公钥私钥登录方式主要分为三步:
1. 生成密钥(公钥和私钥)
2. 放置公钥(Public Key)到服务器~/.ssh/authorized_key文件中
3. 拷贝私钥(Private Key)自己妥善保存,用于认证
4. 配置使用ssh客户端使用密钥
生成密钥
#1. 生成公钥和私钥
[root@home:~$] ssh-keygen
#2. 弹出提示
Generating public/private rsa key pair.
#3. 选择存放key的文件的位置
Enter file in which to save the key (/home/.ssh/id_rsa):
#4. 提示输入生成公钥私钥使用的密码,可以默认,直接回车就行
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
#5. 显示公钥私钥生成的位置,不带.pub的是私钥,带.pub是公钥
Your identification has been saved in /home/.ssh/id_rsa.
Your public key has been saved in /home/.ssh/id_rsa.pub.
#6. 剩余的输出的信息
The key fingerprint is:
SHA256:bEnqIod+P9hUbwjAvTLJX8WClWIgPDnxFqxm/ZSSPTg zhangfa@xjtuPC2
The key's randomart image is:
+---[RSA 2048]----+
| .o=oo o.o |
| =o+.= o o |
| *oB +.o |
| +.E B+o. |
| o O.=So |
| . .+.. o |
| o o+. . |
| . oo.o |
| .. ... |
+----[SHA256]-----+
在服务器上注册公钥
[root@home:~]$ cd .ssh/
# 将刚刚的公钥注册到authorized_keys中
[root@home .ssh]$ cat id_rsa.pub >> authorized_keys
注意:如何权限不够,则可以进行权限修改
[root@home:~]$ chmod 600 authorized_keys
[root@home:~]$ chmod 700 ~/.ssh
下载公钥,使用私钥进行认证登录
点击确定连接即可
两台或多台服务器之间免密登录设置
有两台(或多台)同局域网的服务器A:192.168.2.21,B:192.168.2.25。让A,B这两台服务器之间能两两互相免密登录,并且每台服务器都可以自我免密登录(自我免密登录即:ssh localhost 时不需要密码)。
让服务器A实现免密登录自己
1.在A服务器中指定的位置(/root/.ssh)生成私钥id_rsa和公钥id_rsa.pub。
在服务器A操作
ssh-keygen
一路回车键,服务器A的私钥即可生成
2.在服务器A中把公钥id_rsa.pub追加到服务器A管理密码登录权限的文件(authorized_keys)中。
cat id_rsa.pub >> authorized_keys
3.此时,服务器A可免密登录服务器器A了。验证:
让服务器A实现免密登录服务器B
1、把服务器A的公钥id_rsa.pub复制到服务器A要免密登录的那台服务器(即B)中的指定位置(/root/.ssh);
在服务器A操作
scp id_rsa.pub 192.168.2.25:/tmp
2、在服务器B中把公钥id_rsa.pub追加到服务器B管理密码登录权限的文件(authorized_keys)中。
在服务器B操作
cd /root/.ssh
cat /tmp/id_rsa.pub >> authorized_keys
此时,服务器A的公钥(登录服务器B的权限)追加到服务器B中的权限文件authorized_keys中,服务器A可免密登录服务器器B了。
原因:因为此时服务器B的密码登录权限文件authorized_keys中已经有服务器A的公钥,即A获得了B的登录权限。
3、验证:
在服务器A中操作
登录已经不需要密码了。
让服务器B实现免密登录服务器A
和步骤二是一样的操作。
非root用户设置密钥登录
和上面操作类型,主要要注意修改目录及文件的权限
修改.ssh的权限为700, authorized_keys的权限为600或者更严格的400,否则登录的时候会提示server refuse you key。(普通用户需要去自己的home目录中修改)
注意事项
最后如何需要修改登录方式,一定要注意在配置密钥登录成功之前,千万不要将PasswordAuthentication 设置no,否则你密钥登录不了,然后又禁止密码登录。在密钥登录设置成功之后,可以将PasswordAuthentication 设置为no,禁用密码登录了。
参考:https://blog.csdn.net/l8947943/article/details/111463910
https://blog.csdn.net/baobaoclass/article/details/124895229
https://blog.csdn.net/weixin_41997940/article/details/123607318