环境检查
检查OpenSSL
ssh -V
输入上面的命令,会有如下的返回,即为正常。
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017
继续输入
rpm -qa | grep ssh
出现如下返回,即为正常。(请无视版本号)
openssh-7.4p1-21.el7.x86_64
openssh-server-7.4p1-21.el7.x86_64
libssh2-1.8.0-3.el7.x86_64
openssh-clients-7.4p1-21.el7.x86_64
如果这里没有的话,需要进行安装。执行如下命令
yum install openssh-clients
yum install openssh-server
检查SSH服务是否开启
只有在SSH服务开启的状态下,才能远程登录,连接和管理服务器。如果关闭SSH服务,则远程连接客户端无法再连接服务器,但是已连接的客户端可以继续使用。
执行命令查看开启和关闭状态(两条命令均可,系统版本不同命令不同)
systemctl start sshd.service
service sshd status
active 表示SSH服务是启动的 inactive表示SSH服务已关闭
执行命令 systemctl start sshd.service
或者 service sshd start
启动SSH服务。
执行命令 systemctl stop sshd.service
或者 service sshd stop
启动SSH服务。
执行命令 systemctl restart sshd.service
或者 service sshd restart
重启SSH服务。
执行命令 systemctl enable sshd.service
或者 service sshd enable
设置服务开机自启。
生成公钥和私钥
如在两台服务器(172.30.4.81
和 172.30.4.82
)上配置,使得 172.30.4.82
能通过公钥访问 172.30.4.81
的详细步骤,这里假设两台服务器都是基于常见的 Linux 操作系统(如 CentOS、Ubuntu 等):
在 172.30.4.81
(生成公钥和私钥的服务器)上操作
-
生成密钥对(如果还未生成的话) :
以要接收连接的用户身份(通常可以是root
用户或者其他有对应权限的普通用户,这里以root
为例)登录到172.30.4.81
服务器,在命令行中执行以下命令来生成 RSA 类型的密钥对(当然也可以选择其他如 DSA 等加密算法类型,不过 RSA 较为常用):ssh-keygen -t rsa
运行该命令后,系统会提示你输入保存密钥文件的路径(直接回车可使用默认路径,一般为 /root/.ssh/id_rsa
)以及设置密钥的密码(也可以直接回车不设置密码,不过设置密码会更安全些,后续每次使用该私钥连接时需要输入密码来验证)等信息,按照提示依次操作完成即可。
- 查看生成的公钥和私钥文件 :
生成密钥对后,在默认路径(/root/.ssh/
目录下,如果前面步骤使用了默认设置的话)会有两个文件:id_rsa
:这是私钥文件,需要妥善保管,不能泄露给其他人,它用于后续验证身份。id_rsa.pub
:这是公钥文件,其内容将会被添加到要访问的目标服务器(也就是172.30.4.82
)的授权文件中。
复制公钥
在 172.30.4.82
(使用公钥访问的服务器)上操作
-
将公钥添加到
172.30.4.81
的授权文件中 :
先以合适的用户身份(比如root
用户,如果有对应权限的话)登录到172.30.4.82
服务器,然后可以通过以下几种常见方式将172.30.4.81
上生成的公钥添加到172.30.4.82
的授权文件中:- 手动复制粘贴方式(较简单直观但稍麻烦) :
使用文本编辑器(如vim
、nano
等)打开172.30.4.81
服务器上的公钥文件(/root/.ssh/id_rsa.pub
,假设是root
用户生成的密钥对且使用默认路径),复制其中的内容(公钥内容是一长串字符,类似ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ...
这样的格式)。
接着在172.30.4.82
服务器上打开/root/.ssh/authorized_keys
文件(如果该文件不存在,则创建它,创建命令可以是touch /root/.ssh/authorized_keys
),然后将复制的公钥内容粘贴到authorized_keys
文件的新一行中保存退出即可。 - 使用
ssh-copy-id
命令(更便捷推荐) :
在172.30.4.82
服务器上执行以下命令(假设同样是以root
用户身份进行操作,且172.30.4.81
服务器的root
用户已经生成了密钥对):
ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.30.4.81
- 手动复制粘贴方式(较简单直观但稍麻烦) :
该命令会自动将指定的公钥文件(这里通过 -i
参数指定了 172.30.4.81
服务器上 root
用户的公钥文件路径 /root/.ssh/id_rsa.pub
)内容添加到 172.30.4.82
服务器对应 root
用户的 authorized_keys
文件中,并且会尝试使用密码(如果之前生成密钥对时设置了私钥密码的话,这里就需要输入密码来完成操作)进行连接验证等相关操作,操作成功后,后续就能使用公钥进行无密码登录了(前提是没有私钥密码或者输入正确的私钥密码)。
测试连接
在 172.30.4.82
服务器上执行以下 SSH 连接命令来测试是否能通过公钥成功访问 172.30.4.81
服务器:
ssh root@172.30.4.81
如果配置正确,此时应该能够直接连接到 172.30.4.81
服务器,而不会再提示输入密码(除非之前生成私钥时设置了密码,那么此时需要输入私钥密码来完成连接)。
通过以上步骤,就能实现 172.30.4.82
通过公钥访问 172.30.4.81
的操作了,在实际应用中,可以根据具体的业务需求和安全策略,对涉及的用户、密钥权限等进行进一步的细化管理和配置优化。