我如何知道我的服务器是否具有SSH? 有无论如何testing?
对于ssh客户端:ssh google.com; 如果说没有find命令,你还没有安装它。
对于ssh服务器:ssh localhost; 如果它没有做任何事你没有得到SSH服务器。
如果你正在运行debian / ubuntu:
apt-get install openssh-server
缺less公钥绝不是唯一的方法,ssh命令可能会失败,所以这是一个近似值; 尽pipe如此,这可能就足够了。
ssh $host "echo 2>&1" && echo $host OK || echo $host NOK
哦,而且更具体一些会很好。
另一个说明:
telnet <target> 22
第一行应该是纯文本,告诉你有关SSH的版本。
此外,nmap可以进行SERVICE/VERSION DETECTION ( -sV: Probe open ports to determine service/version info )。 这可能会帮助你find一个configuration错误的端口(到处都隐藏了错别字,我在ssh上运行了21,并closures了与服务器的所有连接)。
which ssh会告诉你,如果你有SSH客户端安装。 但是你可能会问你的服务器是否允许你使用ssh连接到它,在这一点上你正在寻找SSH(SSH守护进程)而不是SSH本身。 如果你已经安装了它,应该可以用/etc/init.d/sshd start作为根启动它。 如果找不到类似名字的脚本,可能是没有安装。 大多数发行版应该默认安装它。
相当旧的一个,但我刚刚打这个post出于同样的原因,并继续从which ssh (输出/ usr / sbin / ssh为默认的Ubuntu安装)的ArtB的职位,你也可以做which sshd输出/ usr / sbin目录/ sshd的
尽pipe说实话,看看Linux上是否有任何东西正在运行的最好方法是ps aux不是吗? 所以在这个例子中ps aux | grep sshd ps aux | grep sshd ,或者那些想要完美并隐藏grep命令ps aux | grep -v grep | grep sshd ps aux | grep -v grep | grep sshd ps aux | grep -v grep | grep sshd ,如下在我的Ubuntu上,我刚安装OpenSSH服务器:
ps aux | grep -v grep | grep sshd root 5638 0.0 0.1 61372 5532 ? Ss 15:35 0:00 /usr/sbin/sshd -D
一种方法是检查你是否安装了ssh RPM Package
[sanyadav@localhost ~]$ **rpm -qa | grep -i ssh**
输出=>
libssh2-1.4.3-8.el7.x86_64 openssh-6.6.1p1-11.el7.x86_64 **openssh-server-6.6.1p1-11.el7.x86_64** **openssh-clients-6.6.1p1-11.el7.x86_64**
此外,如果你想看到安装的ssh rpm软件包的版本
[sanyadav@localhost ~]$rpm -qi openssh-clients-6.6.1p1-11.el7.x86_64
输出=>
Name : openssh-clients Version : 6.6.1p1 Release : 11.el7 Architecture: x86_64