文章时间:2019年11月14日 00:23:28 解决问题:实现了两台服务器之间ssh连接 ps:我们的服务器都是阿里云的,因为参加各种活动,所有服务器买在了好几个不同的账号下。但是因为程序部署等等需要跨服务器之间进行传输,所以需要实现多台服务器之间的无密码ssh连接和内网互通(前提是都在同一区域下) 基于环境:Cent os 7.6 root用户
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服务,则远程连接客户端无法再连接服务器,但是已连接的客户端可以继续使用。
执行命令查看开启和关闭状态(两条命令均可,系统版本不同命令不同)
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
设置服务开机自启。
ssh远程登录的安全外壳协议有两种身份验证机制:
1、口令验证 2、公钥验证
ssh root@192.168.1.1
输入完上面的命令之后,会提示你输入密码,此时输入密码即可正常进入。(默认端口是22)
ps:在阿里云上配置了密钥对的,无法使用此方法,如果想使用此方法,需要开启密码登录。 阿里云服务器开启密码SSH双登录教程:
https://wiki.nooss.cn/archives/296.html
大致的过程是: 当客户端希望通过SSH KEY 鉴权登录时,它会告诉服务端,并附带上自己的公钥KEY信息。服务端检查它的KEY文件,同时生成一个随机串,并且用公钥加密。加密过的随机串,只有客户端用自己的私钥才可以解。 一旦收到消息,客户端将用自己的私钥解密,获取到随机串,同时,将先前跟服务端商定的SESSIONID一起,再次做MD5一致性HASH(md5(randomKey,sessionId),发回给服务端。服务端也按同样的方式生成摘要,如果两者一致,则验证通过。
假设现在有两台Linux服务器 A 和 B,如何配置主机之间的免密ssh登陆? 第一步:在 A 的./root/.ssh/目录下,有两个文件:id_rsa.pub和id_rsa。前者是当前服务器当前用户的公钥,后者是当前服务器当前用户的私钥。如果没有,则使用如下命令生成密钥对:(下面两条命令任选其一即可,默认就是ras加密算法)
ssh-keygen -t rsa
ssh-keygen
运行上面的命令以后,系统会出现一系列提示,可以一路回车。
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.1.1
上面的命令,root
替换为你自己的服务器的用户,ip地址也相应的进行替换即可。