ssh免密互通自用学习笔记
单向ssh无验证连接
使用说明
本地电脑:需要通过ssh无验证远程连接到服务器
服务器:被ssh无验证连接的主机
用户说明
用户不受限制,只要配置完成,可以使用任意用户ssh无验证连接任意用户(root用户需要在ssh的配置文件中开启运行root登陆,修改 PermitRootLogin = yes)
配置说明
- 假设本地电脑的登录为:usertest1
- 想要无ssh验证连接远程主机的用户为:servertest1
远程服务器配置说明
远程服务器应优先做配置,等待其他主机使用,配置步骤如下:
3. 确定使用哪一个用户做被访问的用户,本配置以 servertest1 为例
4. 登陆 servertest1 用户,默认登陆路径为其家目录
[servertest1@bogon ~]$
- 建立 .ssh 文件夹,用于保存 ssh 配置相关文件
[servertest1@bogon ~]$ mkdir .ssh
- 在 .ssh 文件夹目录下,建立配置文件 authorized_keys 用于保存各个无验证主机的 ssh 公钥信息
[servertest1@bogon ~]$ cd .ssh
[servertest1@bogon .ssh]$ touch ./authorized_keys
- 修改目录权限,必须要修改ssh相关目录和文件的读写权限,否则ssh不识别,不生效
[servertest1@bogon ~]$ chmod 700 .ssh
[servertest1@bogon ~]$ cd .ssh
[servertest1@bogon .ssh]$ chmod 600 ./authorized_keys
- 等待其他主机上传配置(等本地电脑配置完成后,再继续)
- 其他主机上传配置文件为 id_rsa.pub_usertest1 目录为服务器的家目录的.ssh文件夹
[servertest1@bogon .ssh]$ ll -a
总用量 xxx
-rw-------. 1 servertest1 servertest1 390 10月 24 09:49 authorized_keys
-rw-r--r--. 1 servertest1 servertest1 390 10月 24 09:48 id_rsa.pub_usertest1
- 添加usertest1主机的配置文件到authorized_keys中,因为这是全新建立的步骤,是新建立的authorized_keys,如果之前主机已经有这个文件,建议使用 cat 指令,下面也使用 cat 指令
[servertest1@bogon .ssh]$ cat id_rsa.pub_usertest1 >> authorized_keys
- 重启 ssh 服务(需要root权限)
[servertest1@bogon .ssh]$ systemctl restart sshd.service
本地电脑配置说明
配置步骤如下:
- 默认登陆usertest1,登陆目录在其家目录
- 直接执行命令创建ssh公钥和密钥
[usertest1@bogon ~]$ ssh-keygen -t rsa // -t 参数表示生成的加密规则是 rsa 规则
Generating public/private rsa key pair // 创建公钥私钥对
Enter file in which to save the key (/home/usertest1/.ssh/id_rsa): // 这里可以输入密钥存放的目录,括号显示的是不输入直接回车默认保存的路径
Enter passphrase (empty for no passphrase): // 这里可以输入此密钥对访问的密码,不输入则没有
Enter same passphrase again: // 二次确认密码
Your identification has been saved in /home/usertest1/.ssh/id_rsa.
Your public key has been saved in /home/usertest1/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:t3skmVOPntRnAvundlwLkBjwepAA0QGWnmEj0SNBJNE usertest1@bogon
The key's randomart image is:
+---[RSA 2048]----+
|=B+=*o... |
|.oEB .. o. |
| = = o .o . |
| o o. oo |
| .S..+.* |
| ..=.=.+ +|
| .* o.=o|
| .+ o.+|
| .. ..+ |
+----[SHA256]-----+
[usertest1@bogon ~]$
- 上传本机的公钥到服务器
[usertest1@bogon ~]$ cd .ssh
[usertest1@bogon .ssh]$ mv id_rsa.pub id_rsa.pub_usertest1 // 改个名字,以免服务器上文件重名
[usertest1@bogon .ssh]$ scp -r id_rsa.pub_usertest1 servertest1@服务器ip:~/.ssh/id_rsa.pub_usertest1
// 这里下一步需要输入服务器的ssh账号密码,因为这时候还没配置好ssh无验证,上传文件的时候需要输入密码
servertest1@服务器ip's password:
// 输入完成,传输完成显示如下信息:
id_rsa.pub_usertest1 100% 390 445.5KB/s 00:00
- 重启 ssh 服务(需要root权限)
[usertest1@bogon .ssh]$ systemctl restart sshd.service
- 等待服务器的后续配置(服务器配置的8步以后)
- 测试ssh连接
[usertest1@bogon .ssh]$ ssh servertest1@服务器ip
Last login: Mon Oct 24 09:49:10 2022 from 本地ip
[servertest1@bogon ~]$ exit
登出
Connection to 服务器ip closed.