密码登录)"/>
SSH信任关系配置(免密码登录)
场景:主机A想ssh免密码访问主机B (root/非root用户通用) A→B
1、在主机A上切换到平常用来跳转的用户上(本例用普通用户GK),执行ssh-keygen命令,然后一路回车即可。
root@主机A:[/root]su - GK
GK@主机A:~> cd .ssh //没有就新建:~>mkdir .ssh 注意带上符号“.”
GK@主机A:~/.ssh> ssh-keygen //一路回车到结束即可
Generating public/private rsa key pair.
Enter file in which to save the key (/home/GK/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/GK/.ssh/id_rsa.
Your public key has been saved in /home/GK/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:HvuXR5fdQkas5dsfasdasOFh/YwCM6xt/kqw GK@主机A
The key's randomart image is:
+---[RSA 2048]----+
| o .+**..o. |
| . o .*o-o.. |
| . . o*o.oo |
| = o oo. o |
| . = . . o . |
| E. o .. . |
+----[SHA256]-----+
2、查看生成的公钥文件id_rsa.pub,并复制其内容
GK@主机A:~/.ssh> ll
total 8
-rw------- 1 GK GK 1675 Aug 20 17:02 id_rsa
-rw-r--r-- 1 GK GK 417 Aug 20 17:02 id_rsa.pub
GK@主机A:~/.ssh> cat id_rsa.pub //查看主机A生成的公钥
例:ssh-rsa AAAAB3NzaC1yc2EAAAADA**********UwTauL GK@主机A
注意 公钥要完全复制,包括最后面的“GK@主机A”
3、登录到被访问主机B上面,切换到免密码登录的用户下 //a、b步骤任选其一即可
a.=======免密码登录root====== //当想免密跳转到主机B的root用户时root@主机B:[/root/.ssh]cd ~ root@主机B:[/root]mkdir .ssh //有.ssh目录就跳过这步root@主机B:[/root]cd .ssh root@主机B:[/root/.ssh]vi authorized_keys //将主机A复制的公钥粘贴到此文件内,并wq保存
b.======免密码登录普通用户===== //当想免密跳转到主机B普通Bck用户时root@主机B:[/root]su - Bck Bck@主机B:[/home/Bck]mkdir .ssh //有.ssh目录就跳过这步Bck@主机B:[/home/Bck]cd .ssh Bck@主机B:[/home/Bck/.ssh]vi authorized_keys //将主机A复制的公钥粘贴到文件内,并保存
4、跳转的是普通用户则还需要修改主机B的.ssh等文件权限,否则还是要密码登录
Bck@主机B:[/home/Bck]chmod 700 -R /home/Bck/.ssh //路径根据实际用户而改变
Bck@主机B:[/home/Bck]chmod 600 -R /home/Bck/.ssh/authorized_keys //路径根据实际用户而改变
测试访问:
GK@主机A:~>ssh Bck@192.168.96.120
至此已可以不用输密码即可登录,但是还是需要输入用户名(当主机A/B,公私钥使用的用户名相同可不用)
==解决本地登陆用户与远程登陆用户不一致时免输用户跳转===
1、进入主机A上生成秘钥的用户 ~/.ssh ,修改config配置文件 //没有就新建
GK@主机A:~/.ssh> vi config //按以下格式添加
Host hostname // hostname即主机B地址
user name // name 主机B用来免密码登录的用户
Host hostname
user name
例:
Host 192.168.96.120
user BCK
2、修改config权限,不然会报错
GK@主机A:~/.ssh>chmod 600 -R config
=====重启主机BSSHD守护进程=======
root@主机B:[/etc/ssh]ps -ef | grep ssh //用root查看sshd进程
root 11955 1 0 Aug16 ? 00:00:00 sshd: root@pts/0
root 119338 1 0 17:35 ? 00:00:00 /usr/sbin/sshd -D //sshd守护进程
root 125551 11957 0 17:54 pts/0 00:00:00 grep --color=auto ssh
root@主机B:[/etc/ssh]kill -HUP 119338 //重启SSHD守护进程
“-HUP”一定要加上!!!否则ssh守护进程被杀死,只有重启系统了!!!进程ID一定要对应!!!
更多推荐
SSH信任关系配置(免密码登录)
发布评论