概述
场景:主机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信任关系配置(免密码登录)的全部内容,希望文章能够帮你解决SSH信任关系配置(免密码登录)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复