Open LLLeon opened 3 years ago
目标:通过 SSH 从 Server A 免密登录到 Server B。为了表述方便清晰,下面将 Server A 称为本地主机,将 Server B 称为远程主机。
方式:Public Key 认证。
原理:
步骤:
主机系统为 CentOS 7。
远程主机的 sshd 服务相关操作:
systemctl status sshd systemctl start sshd systemctl stop sshd systemctl reload sshd
需要在配置中启用公钥登录,vi /etc/ssh/sshd_config:
vi /etc/ssh/sshd_config
# 配置文件 PubkeyAuthentication yes #PasswordAuthentication yes
在本地主机生成一对密钥:
ssh-keygen
将公钥拷贝到远程主机,重命名 authorized_keys:
scp id_rsa.pub root@ServerBIP:~/.ssh mv ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
或通过 ssh-copy-id 命令自动完成:
ssh-copy-id
ssh-copy-id -i ~/.ssh/id_rsa.pub root@ServerBIP
本地主机向远程主机发送一个连接请求,信息包括用户名、IP:
ssh root@serverBIP
远程主机收到请求,会从 authorized_keys 中查找是否有相同的用户名、IP,如果有,它会随机生成一个字符串,并用公钥加密,然后发送给本地主机。
本地主机收到远程主机发来的信息后,会使用私钥进行解密,然后将解密后的字符串发送给远程主机。
远程主机收到本地主机发来的信息后,会和之前生成的字符串进行比对,如果一致,则允许免密登录。
使用:
查看远程主机 IP 地址:
ip addr
登录:
ssh root@ServerBIP
注意:
~/.ssh
/.ssh/authorized_keys
目标:通过 SSH 从 Server A 免密登录到 Server B。为了表述方便清晰,下面将 Server A 称为本地主机,将 Server B 称为远程主机。
方式:Public Key 认证。
原理:
步骤:
主机系统为 CentOS 7。
远程主机的 sshd 服务相关操作:
需要在配置中启用公钥登录,
vi /etc/ssh/sshd_config
:在本地主机生成一对密钥:
将公钥拷贝到远程主机,重命名 authorized_keys:
或通过
ssh-copy-id
命令自动完成:本地主机向远程主机发送一个连接请求,信息包括用户名、IP:
远程主机收到请求,会从 authorized_keys 中查找是否有相同的用户名、IP,如果有,它会随机生成一个字符串,并用公钥加密,然后发送给本地主机。
本地主机收到远程主机发来的信息后,会使用私钥进行解密,然后将解密后的字符串发送给远程主机。
远程主机收到本地主机发来的信息后,会和之前生成的字符串进行比对,如果一致,则允许免密登录。
使用:
查看远程主机 IP 地址:
登录:
注意:
~/.ssh
的权限设置为 700。/.ssh/authorized_keys
的权限设置为 600。