我刚刚开始使用 SSH,我需要一个熟悉 Ubuntu/Linux 上的 SSH 的人来向我全面介绍如何使用 SSH。
我目前知道 SSH 用于通过网络安全地连接到计算机,然后能够从工作站的终端在该计算机上执行命令。
使用全新 Ubuntu 14.04 桌面安装上的默认设置,我尝试使用 ssh 命令和服务器的 ip 地址连接到 Ubuntu 服务器(也是全新安装,没有额外的软件包):
ssh [email protected]
我收到“连接被拒绝”消息。
读过https://help.ubuntu.com/community/SSH据我所知,Ubuntu 只安装了 ssh 客户端(特别是 openssh 客户端),而没有安装 ssh 服务器。
然后我在服务器上安装 openssh-server 包并重复上述命令,然后它允许我输入服务器计算机上 larryserver 用户的密码。我进去了。
除了 ubuntu 帮助页面可以教我的内容之外,我还想了解有关 ssh 的信息,即与 Ubuntu 上的 ssh 相关的所有重要文件位于何处以及它们的用途。
/usr/bin/ssh
上面的文件是我在终端中输入 ssh 命令时执行的二进制文件,对吗?
如果 openssh 是 ssh 的客户端和服务器,那么什么会告诉 ssh 命令此客户端/服务器配置正在使用中?如果我安装了非 openssh 的客户端和服务器包,ssh 命令如何使用它们?或者 ssh 命令仅使用 openssh?
谢谢!
答案1
除了 ubuntu 帮助页面可以教我的内容之外,我还想了解有关 ssh 的信息,即与 Ubuntu 上的 ssh 相关的所有重要文件位于何处以及它们的用途。
ssh(1)
请参阅和的手册页sshd(8)
。有一章名为,您可以在其中查看与和(ssh 服务器)FILES
相关的所有文件。ssh
sshd
上面的文件是我在终端中输入 ssh 命令时执行的二进制文件,对吗?
是的
如果 openssh 是 ssh 的客户端和服务器,那么什么会告诉 ssh 命令该客户端/服务器配置正在使用中?
当您ssh
在调试模式下运行时(ssh -vvv remote_host
),您将获得有关内部情况的更多信息,包括所使用的配置文件。
如果您的意思是调用,它是基本的 *NIX 内容,并且由环境变量ssh
处理。$PATH
如果我安装了不是 openssh 的客户端和服务器包,ssh 命令如何使用它们?或者 ssh 命令只使用 openssh?
您有 ssh 的“其他客户端和服务器”示例吗?我记得上次 openssh 的“市场份额”约为 80%。
但是我认为其他软件包提供的二进制文件放在同一路径下而不是 下没有任何问题openssh
。它只是将 C 代码编译成二进制格式放在/usr/bin/
文件夹中。
答案2
我刚刚开始使用 SSH,我需要一个熟悉 Ubuntu/Linux 上的 SSH 的人来向我全面介绍如何使用 SSH。
SSH 是安全外壳 -网络协议由各种程序实现,允许机器进行通信。openSSH 是一个实现(其他实现可以找到这里)——但它是最受欢迎的之一。
除了 ubuntu 帮助页面可以教我的内容之外,我还想了解有关 ssh 的信息,即与 Ubuntu 上的 ssh 相关的所有重要文件位于何处以及它们的用途。
你可以通过查看以下文件来查看一些“重要”文件文件列表对于包(注:你可以直接检查包裹,您不必使用在线文件列表)- 对软件包来说重要的其他大多数文件都包含在列出的依赖软件包中这里(例如对于 libssl)。
大部分内容都是经过编译的(因此你无法真正看到它在查看文件时做了什么),如果你想知道它在做什么,你也许可以从源代码中了解它做了什么|1| |2|
/usr/bin/ssh
上面的文件是我在终端中输入 ssh 命令时执行的二进制文件,对吗?
通常情况下是的。取决于$PATH
|1| |2|. 如果ssh
可执行文件位于路径的后面,则可能会执行
通过以上两点,您可以通过检查以下内容了解有关包等的更多信息:
文件系统层次结构标准- 几乎所有东西都有自己的位置 -
bin
可执行二进制文件、/etc
配置等等。
读过https://help.ubuntu.com/community/SSH据我所知,Ubuntu 只安装了 ssh 客户端(特别是 openssh 客户端),而没有安装 ssh 服务器。
这是因为并不是每个人都希望在自己的机器上运行某些东西(具有可以连接的开放端口),允许其他人远程访问它 - 就像没有防火墙的 Windows 一样 :)(还有一条原则,即访问点越多,保护就越困难)。SSH 客户端很有用,因为它可以派上用场,但其他方面却不会带来太多麻烦。
注意:我知道其中的一些内容,请随意批评 :D