SSH是系统管理员必须掌握的一种基本工具。
SSH或Secure Shell是用于安全登录到远程系统的协议。这是访问远程Linux和类Unix服务器的最常用方法。
毫无疑问,Linux上使用SSH连接到远程系统的工具称为ssh。
以下是基本语法,该命令的最基本形式为,remote_host是你尝试连接的IP地址或域名.
ssh remote_host
该命令假定你在远程系统上的用户名与本地系统上的用户名相同。如果你的用户名在远程系统上不同,则可以使用以下语法来指定它:
ssh remote_username@remote_host
连接到服务器后,可能会要求你通过提供密码来验证你的身份。稍后,将介绍如何生成要使用的密钥而不是密码。
要退出本地会话,只需键入:
exit
在Ubuntu上,你可以通过键入以下命令启动ssh服务:
sudo service ssh start
在Ubuntu 16.04和Debian Jessie上,可以使用用于管理服务systemctl的systemd命令:
sudo systemctl start ssh
至此,那应该是已经启动sshd服务了,然后你可以远程登录。
使用密钥登录SSH,能够使用密码登录到远程系统虽然很有帮助,但是设置基于密钥的身份验证是一个更好的主意。
基于密钥的身份验证通过创建一对密钥来工作:私钥和公钥。该私钥位于客户机上,并固定和保密。该公钥可以给任何人或放置到要访问的任何服务器上。
当尝试使用密钥对进行连接时,服务器将使用公共密钥为客户端计算机创建一条消息,该消息只能用私有密钥读取。
然后,客户端将适当的响应发送回服务器,服务器将知道客户端是合法的。设置密钥后,整个过程将在后台自动完成。
创建SSH密钥,SSH密钥必须要登录的计算机上生成的。这通常是本地计算机。
在命令行中输入以下内容:
ssh-keygen -t rsa
按Enter接受默认值。密钥将在〜/ .ssh / id_rsa.pub和〜/ .ssh / id_rsa中创建。id_rsa文件仅对所有者可读和可写。这就是将其保密的方式。但是id_rsa.pub文件可以共享,并具有适合此活动的权限。
可以通过发出以下命令将公钥复制到远程服务器:
ssh-copy-id remote_host
这将启动SSH会话,将需要使用密码进行身份验证。
输入密码后,它将把公共密钥复制到服务器的授权密钥文件中,这将使下次无需密码即可登录。
如果你想了解更多SSH命令参数详情,可以通过以下命令:
ssh -h 或者 man ssh
结论:
学习SSH的方法是值得的,即使仅仅是因为这是一种常见的活动。
使用各种选项时,会发现更多高级功能,可以使你的生活更轻松。SSH一直很受欢迎,因为它安全,轻便并且在各种情况下都有用。