使用SSH协议登录Linux服务器

连接远程服务器

Posted by Xiaosheng on April 23, 2016

注:本文是在学习慕课网课程《Linux网络管理》后整理的笔记,感谢课程讲师 Tony。

1.SSH 协议原理

1.1 对称加密算法

对信息的加密和解密使用同一个密钥(密码),也被称为单密钥加密。这种加密方式实现简单,在我们生活中也比较常见,但是不够安全。因为要使接收方能够解密信息,就需要将密钥告知对方,在传递过程中就有可能造成密钥泄露。

1.2 非对称加密算法

非对称加密算法又名“公开密钥加密算法”,它需要两个密钥:公开密钥(publickey)私有密钥(privatekey)。公钥用来加密信息,而私钥用来解密信息。可以形象地理解成:公钥是锁,私钥是钥匙,要打开锁只能使用对应的钥匙。

img

非对称加密算法使用双方的公钥共同加密信息,在加密信息前双方首先要将自己的公钥传递给对方,而解密信息只需要使用任何一方的私钥就可以了。这就确保了除了拥有各自私钥的双方以外,任何人都无法解密信息,而双方的公钥可以公开给任何人,不用担心传输时的泄露问题。

1.3 SSH 安全外壳协议

SSH 协议在非对称加密算法的基础上演变而来,它同样使用公钥和私钥来加密解密信息,在双方通信前也首先需要获得对方的公钥。与非对称加密算法的区别在于,每次发送信息时只需要使用对方的公钥来加密信息。

在与对方通信时,首先使用对方的公钥加密信息,然后将加密后的密文发送给对方,对方使用自己的私钥解密信息;同样地,对方也使用我们的公钥来加密要发送的信息,我们收到后使用我们自己的私钥解密信息。

例如,计算机 A 要去访问计算机 B,A 首先要将 B 的公钥下载回本地,之后发送给 B 的任何信息都是用 B 的公钥进行加密,而 B 使用自己的私钥解密信息。

2.SSH 命令

2.1 远程管理指定 Linux 服务器

ssh 用户名@ip

首次连接服务器时,会提示下载服务器的公钥(通常使用 RSA 加密方式创建 SSH 密钥,所以提示信息一般是“RSA key…”),需要输入 yes 确认。然后输入用户名对应的密码,就可以登录服务器了。要断开与服务器的连接,输入 exit

注:SSH 密钥一般保存在当前用户主目录下的 .ssh 目录下(~/.ssh/)。其中,下载的服务器公钥保存在 known_hosts 文件中。

2.2 下载文件

scp [-r] 用户名@ip:文件路径 本地路径

scp 是 Linux 中最简单、最安全的文件传输协议,scp 就是“SSH 文件复制命令”(ssh-cp)的意思,与 cp 命令非常相似。

2.3 上传文件

scp [-r] 本地文件 用户名@ip:上传路径

3.Windows 下远程登录 Linux 服务器

3.1 Xshell

终端推荐使用 Xshell,它与收费的 SecureCRT 不同,家庭/学校用户可以免费使用,而且 Xshell 功能更强大、字体更漂亮。

img

单击“新建”按钮打开新建会话属性窗口,输入 SSH 连接的名称(随便起一个名字好了),协议选择 SSH,主机输入服务器的 IP 地址,端口号默认 22。点击左侧列表中的用户身份验证,输入用户名,密码可以暂时不输等到连接时再输。最后点击“确认”,连接建立完成。

img

注:首次连接服务器会跳出 SSH 安全警告,提示保存服务器公钥,点击“接受并保存”

如果对当前黑底白字的界面不习惯,可以点击“配色方案”按钮修改,字体大小也可以通过“字体”按钮调整。

3.2 WinSCP

WinSCP 用来在 Windows 系统和 Linux 服务器之间传输文件。

新建站点时,协议请选择“SFTP”,主机名输入 Linux 服务器的 IP 地址,端口默认 22,输入用户名,直接点保存。然后在“存储的会话”列表中选择刚才保存的会话,点击“登录”按钮,首次连接也需要下载服务器公钥,输入用户名对应的密码,就连接成功了。

img

可以快捷地切换本地计算机和远程服务器中的目录位置,也可以自由地在本地和服务器之间拖动文件,使用非常简单。

img

注:本文是在学习慕课网课程《Linux网络管理》后整理的笔记,感谢课程讲师 Tony。