我是靠谱客的博主 甜蜜爆米花,这篇文章主要介绍SSH信任关系配置(免密码登录),现在分享给大家,希望可以做个参考。

场景:主机A想ssh免密码访问主机B (root/非root用户通用) A→B

复制代码
1

1、在主机A上切换到平常用来跳转的用户上(本例用普通用户GK),执行ssh-keygen命令,然后一路回车即可。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
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,并复制其内容

复制代码
1
2
3
4
5
6
7
8
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”

复制代码
1

3、登录到被访问主机B上面,切换到免密码登录的用户下 //a、b步骤任选其一即可

复制代码
1
2
3
4
5
6
7
8
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保存
复制代码
1
2
3
4
5
6
7
8
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等文件权限,否则还是要密码登录

复制代码
1
2
3
4
Bck@主机B:[/home/Bck]chmod 700 -R /home/Bck/.ssh //路径根据实际用户而改变 Bck@主机B:[/home/Bck]chmod 600 -R /home/Bck/.ssh/authorized_keys //路径根据实际用户而改变

测试访问:

复制代码
1
GK@主机A:~>ssh Bck@192.168.96.120

至此已可以不用输密码即可登录,但是还是需要输入用户名(当主机A/B,公私钥使用的用户名相同可不用)

==解决本地登陆用户与远程登陆用户不一致时免输用户跳转===
1、进入主机A上生成秘钥的用户 ~/.ssh ,修改config配置文件 //没有就新建

复制代码
1
2
3
4
5
6
7
8
9
10
11
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权限,不然会报错

复制代码
1
GK@主机A:~/.ssh>chmod 600 -R config

=====重启主机BSSHD守护进程=======

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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
复制代码
1
2
root@主机B:[/etc/ssh]kill -HUP 119338 //重启SSHD守护进程

“-HUP”一定要加上!!!否则ssh守护进程被杀死,只有重启系统了!!!进程ID一定要对应!!!

最后

以上就是甜蜜爆米花最近收集整理的关于SSH信任关系配置(免密码登录)的全部内容,更多相关SSH信任关系配置(免密码登录)内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(90)

评论列表共有 0 条评论

立即
投稿
返回
顶部