大家好,又见面了,我是你们的朋友全栈君。
首先看SSH免密登录简易原理图: 主机A想要SSH免密登录主机B, 首先需要将主机A的SSH公钥复制到主机B的授权列表文件, A登录B时,B会查看自己的授权列表文件, 若存在A的公钥,经过一系列验证后,即可登录
首先准备两台主机 SSH-A 和 SSH-B(注意:两台主机必须能 ping 通)
我的 SSH-A 主机的 IP 是:192.168.198.12,
SSH-B 主机的 IP 是:192.168.198.13 ,
!!!!SSH Key 是针对主机中某一个用户的, 每个用户的SSH Key都不一样
开始(主机 SSH-A 免密登录主机 SSH-B):
1. 在 SSH-A 生成 用户 SA 的 SSH Key
在SA用户下执行下面的命令: ssh-keygen -t rsa
中间的出现 Enter passphrase(empty for no passphrase) 和 The key fingerprint is 直接回车, 默认的就行
2. 默认生成的 .ssh 目录默认保存在用户主目录下(我这的用户主目录是/home/SA ),进入.ssh目录
进入用户主目录, 由于.ssh是隐藏文件,需使用 ls-all 命令才能看到
3. 将.ssh目录下的 id_rsa.pub 远程拷贝到 SSH-B 主机上(远程拷贝命令 scp)
scp id_rsa.pub SB@192.168.198.13:/home/SB
此命令的意思是:从本机将 id_rsa.pub 文件 以 SB 这个用户的身份 写到192.168.198.13(SSH-B)主机下的 home/SB 目 录下, SB 是 SSH-B主机上的一个用户, /home/SB 是 SSH-B 的用户主目录, 中间需要输入 SB 的用户密码
4. 在主机 SSH-B 里, 进入 /home/SB 目录(以 SB 这个用户的身份), 同样的过程, 为 SB 用户生成 SSHKey
并进入 .ssh 目录下
5. 将 SSH-A 的公钥添加到 SB 用户 .ssh 目录下的 authorized_keys 文件中, 若 authorized_keys 不存在, 则手动创建一 个,注意:authorized_keys 的权限必须为 -rw——,即只有SB这个用户可读可写, 其他无任何权限
可通过 chmod 600 authorized_keys 修改权限
6. 测试登录, 登陆成功, 大功告成
ssh SB@192.168.198.13 表示使用 SB 这个用户 登录 192.168.198.13 主机
追求完美:
1. 远程登录到别的主机后怎么 回到原来的主机
从主机SSH-A 登录到 SSH-B主机: ssh SB@192.168.198.13
回到原来的主机: ssh SA@192.168.198.12
问题: 登录回源主机时需要输入 SA 的用户密码, 因为我们没有将 用户 SA 的 public key 添加到 用户SA 的
authorized_keys 文件中, 只需要在用户SA 的authorized_keys 文件中添加 SA 自己 的公钥, 即可免密切换回源主 机主机
2. 执行 ssh SB@192.168.198.13 远程登录时发现还需要输入密码
(1). 检查文件名是否错误, 必须为 authorized_keys
(2). 检查authorized_keys的权限是否为-rw——
(3). 若(1), (2)都没问题, 则给 SB 用户添加超级用户权限
方法:打开 /ect/sudoers 文件, 找到 root ALL=(ALL) ALL行,
在这行下面添加一行 SB ALL=(ALL) ALL 即可
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/129586.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...