进行此项检查时:
$ /usr/sbin/sshd -t
获取:
Could not load host key: /etc/ssh_host_rsa_key
Could not load host key: /etc/ssh_host_dsa_key
但是当对所有进行相同检查时,结果sudo
都是好的:
$ sudo /usr/sbin/sshd -t
$
有人知道为什么会发生这种情况,我的标准用户出了什么问题以及如何解决它?
答案1
有人知道为什么会发生这种情况,我的标准用户出了什么问题以及如何解决它?
没有任何问题;您正尝试sshd
以非特权用户身份运行(SSH 守护程序)。
例如,我在 Mac OS X 10.9.5 (Mavericks) 上运行时收到完全相同的“错误” /usr/sbin/sshd -t
:
Could not load host key: /etc/ssh_host_rsa_key
Could not load host key: /etc/ssh_host_dsa_key
这是可以预料的,因为sshd
SSH守护进程—注意d
后面的ssh
—它将作为系统上的 SSH 服务器运行,监听并等待远程 SSH 登录请求。因此它将总是需要 root/sudo
权限才能工作。
因此,这不是“错误”,而是sshd
以非特权用户身份尝试运行系统守护程序时的预期行为。
也许您正在尝试运行ssh -t
?正如该选项的手册页ssh
-t
所解释的那样:
强制分配伪 tty。这可用于在远程计算机上执行任意基于屏幕的程序,这非常有用,例如在实现菜单服务时。多个 -t 选项强制分配 tty,即使 ssh 没有本地 tty。
这基本上允许您从当前终端远程运行命令,并将输出显示在本地,就像它在本地机器上运行一样。所以-正如本页所解释的那样—如果您想ls
在远程机器上运行而又不完全登录,您可以运行以下命令:
ssh -t [username]@[hostname] ls
输出ls
将显示在您的屏幕上,并且ssh
该命令完成后连接将立即关闭。