如何使用 SSH 连接到你的云服务器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用 SSH 连接到你的云服务器相关的知识,希望对你有一定的参考价值。

参考技术A 以SSH
Secure
Shell
Client
3.2.9连接centos6.5服务器为例。1,下载安装SSH
Secure
Shell
Client
3.2.9.此过程没有什么技术含量,默认安装就可以了。“SSH
Secure
Shell
Client”是“SSH安全Shell客户端”,连接服务器后出现的是字符命令操作界面;“SSH
Secure
File
Transfer
Client”是“SSH的安全文件传输的客户端”,连接服务器后出现的是文件管理界面.2,打开SSH,点击界面左上角的电脑标志,然后在弹出的对话框中输入服务器的IP地址(公网IP),和账号——然后点击右边的“connect”按钮——输入密码,点击OK,进入到CentOS6.5中的命令字符界面,这样就成功连接上服务器了。
远程云服务器其实不复杂,希望对不会远程连接云服务器的朋友有所帮助。

如果检查 ssh OK 然后连接到服务器 1,如果 ssh NOT OK 然后连接到服务器 2,如何检查 ssh 可用性?

【中文标题】如果检查 ssh OK 然后连接到服务器 1,如果 ssh NOT OK 然后连接到服务器 2,如何检查 ssh 可用性?【英文标题】:How to check ssh availability if check ssh OK then connect to server 1 and if ssh NOT OK then connect to server 2? 【发布时间】:2018-12-03 17:40:34 【问题描述】:

我有 2 台服务器。 第一台服务器始终处于活动状态,第二台服务器始终处于待机状态。 我正在尝试编写一个 bash 脚本来在执行任务之前检查这两个服务器的状态。 如果第一台主机死机(或将 SSH 连接到服务器 1 不正常),那么它将 SSH 连接到第二台主机以执行任务。

你知道怎么做吗?

【问题讨论】:

检查这里:***.com/questions/4936807/… 你应该能够检测到超时/失败 if ssh server1 true ; then ssh server1 ; else ; ssh server2 ; fi? @FreudianSlip:因为,2台服务器之间的连接是***隧道,所以超时/失败无法使用我的情况。 @Biffen:你能给我解释一下吗? @donald.sys 解释一下? 【参考方案1】:

EDIT2:由于 OP 提到有一个名为 IP.list 的文件,应该从中读取服务器名称,那么下面的内容可能会对您有所帮助。

while read server
do
  if [[ -n $(ssh user_name@"$server" "ls -ld /tmp") ]]
  then
      echo "$server is up."
      echo "Exiting from script now.."
      exit;
  else
      echo "$server is NOT up, look for another server."
  fi
done < "IP.txt"

编辑:由于 OP 说 ping 不是检查服务器可用性的选项,因此仅将 ssh 用于服务器。考虑到您的源服务器(从您运行脚本的位置)和目标服务器(您正在检查其状态的服务器之间存在无密码连接,因此不会提示您输入任何密码)

if [[ -n $(ssh user_name@server_name "ls -ld /tmp") ]]
then
    echo "Server 1 is up."
else
    echo "Server is NOT up, look for another server."
fi

您可以简单地对 SERVER1 执行 ping 并查看这是否成功,以防它不是意味着服务器未启动,您可以将您的东西移动到另一个站立服务器。

if [[ $(ping -c5 SERVER1 | grep -q "5 packets transmitted, 5 received") -eq 0 ]]
then
    echo "Server1 is up."
else
    echo "Server is NOT up, look for another server."
fi

【讨论】:

因为安全系统,我所有的服务器都拒绝ping。你有不同的想法吗? @donald.sys,现在请检查我的编辑并让我知道吗? [[ $(ssh user_name@server1 exit 10) -eq 10 ]] 不太可能是真的。您正在比较ssh输出,而不是它的退出代码。 @Biffen,很酷,现在更改了它并进行了测试,如果出现错误,它会显示错误。 @RavinderSingh13:是的。但这不是我所期望的。我有一个 IP.txt 文件,内容是 192.168.56.101 和 192.168.56.102。我想检查 ssh 连接到两台主机的情况并执行:+ 如果连接 SSH 到 192.168.56.101 成功,那么它将执行运行 script.sh 文件。 + 如果连接 SSH 到192.168.56.101 失败,执行连接 SSH 到 192.168.56.102 运行 script.sh。

以上是关于如何使用 SSH 连接到你的云服务器的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 ssh 连接到 ngrok 自托管服务器

如何使用代理跳转(堡垒主机)通过 ssh 隧道连接到 mongodb 服务器

如何以编程方式连接到需要 SSH 隧道的远程数据库服务器?

如何使用 ssh 隧道将谷歌数据工作室连接到 AWS 上的 postgres 无服务器?

如何自动输入密码ssh连接到其他机器

如何使用 IntelliJ 和 JDBC 建立 SSH 隧道并连接到数据库?