已安装 SSH,但未找到 SSHD

已安装 SSH,但未找到 SSHD

我正在跟进本教程

在 16.04 中安装 ssh 的部分我做了:

sudo apt-get install ssh

我使用以下方法测试了 ssh:

which ssh

它给了我一条路径,表明它正在运行。

但当我尝试时:

which sshd

什么都没生成。没有文件位置,没有错误,什么都没有?

我该如何修复 sshd 安装?


编辑:

回答steeldriver:

$ echo $path 
/home/hugh/.sdkman/candidates/java/current/bin:/home/hugh/anaconda3/bin:~/anaconda/bin:~/anaconda/bin:~/anaconda/bin:/home/hugh/bin:/home/hugh/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

$ dpkg -L openssh-server
dpkg-query: package 'openssh-server' is not installed  
Use dpkg --info (= dpkg-deb --info) to examine archive files,  
and dpkg --contents (= dpkg-deb --contents) to list their contents.

我可能应该提到,我正在一台独立的机器上运行所有这些,目前无法访问服务器。这能解释这个问题吗?

答案1

实现此功能的最佳方法是安装 openssh-client 包(带有客户端工具)和 openssh-server 包(带有服务器守护程序):

sudo apt-get install openssh-client openssh-server

这应该可以解决你的问题。

答案2

这是一个很晚的回复,但对于某些人来说可能还是有用的。

对于任何可能遇到与问题相同的情况(即which ssh显示位置但which sshd不显示任何内容)的人来说,这仅仅意味着你只有 SSH 客户端和没有 SSH 服务器在您的机器上运行。您可以通过 SSH 连接到其他计算机,但这些计算机无法通过 SSH 连接到您。

我尝试通过以下方式安装 ssh 服务器:

sudo apt install openssh-server

当我运行时,which sshd我仍然什么也没得到。我所做的是通过以下方式完全删除 SSH:(请注意,如果您复制此命令,它不会要求您确认,因为我使用了 -y 确认)

sudo apt remove ssh --purge -y

然后我重新安装了 ssh(它添加了openssh-客户端openssh-服务器) 通过:

sudo apt install ssh -y

以这种方式重新安装 ssh 后,为了确保理智和安全,我通过以下方式重新启动了 SSH 守护程序:

sudo service sshd restart

当我这样做时which ssh,我得到了回应,当我发布时也是如此which sshd。我希望这对其他人有所帮助。顺便说一句Ubuntu 18.04实例已开启虚拟盒Windows 10机器,我想从 Windows 访问它(是的,我知道有 WSL 并且我使用它)。

答案3

sudo可能会让您访问sshd

$ sudo which sshd
/usr/sbin/sshd

理由如下:

  • sshd安装在/usr/sbin
  • 即使您的$PATH不包括/usr/sbinsudo通常也可以让您访问/usr/sbin

顺便说一句,@steeldriver 的评论也提到了这一点

请记住,它仅搜索当前用户的路径 - 对于非特权用户,可能不包括 /usr/sbin


在您的帖子的编辑部分进行评论(以防其他读者对此感到困惑)

我假设您的编辑是对以下内容的回复:

请使用 echo $PATH 和 dpkg -L openssh-server 的输出编辑您的问题 – steeldriver

但是您应该在安装的服务器上运行该命令sshd,而不是在客户端计算机上。

我写这篇文章并不是因为我要你修复这个问题(我知道这是一篇旧帖子),而是因为其他读者不会对错误地方的输出感到困惑:)

相关内容