ssh学习笔记

介绍

Secure Shell(安全外壳协议,简称SSH)是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境。

连接方式

秘密验证

连接命令:

1
ssh username@ip

注释:其中username是服务器的用户名,ip是服务器的地址,然后输入服务器端该用户的登录密码即可完成连接验证。

密钥验证

  1. 生成密钥
    在客户端生成公钥和私钥,此处我们使用rsa作为加密方式(加密方式另外还有rsa1、ecdsa、ed25519、dsa等),使用以下命令生成密钥:
    1
    ssh-keygen -t rsa

并设置文件名和秘密(这里我们定义文件名为id_rsa),然后会在目录~.ssh下生成私钥文件id_rsa和公钥文件id_rsa.pub。

  1. 连接验证
    生成密钥文件以后,将公钥放置在服务器端的目录~_.ssh_authorized_keys下,然后在客户端使用私钥进行免秘密验证,连接命令:
    1
    ssh -i ~/.ssh/id_rsa username@ip

快速连接配置

在文件目录~.ssh下有个config文件,我们可以将上文两种连接方式中写在里面,然后直接以ssh+服务器简称的方式进行快速连接。

  1. 秘密配置
    1
    2
    3
    4
    Host    server01
    HostName 192.168.1.10
    Port 22
    User username

注释:22是ssh的默认连接端口(可变更)。配置完成以后,可以通过以下命令连接,连接时需要再次输入密码。

1
ssh server01

  1. 密钥配置
    1
    2
    3
    4
    5
    Host    server02
    HostName 192.168.1.11
    Port 22
    User username
    IdentityFile ~/.ssh/id_rsa

注释:其中IdentityFile为私钥文件的路径。配置完成以后,可以通过以下命令连接,连接时无需再次输入密码。

1
ssh server02

搭建通道

最简单的文件复制通道,执行命令:

1
scp -i ~/.ssh/id_rsa '待传送文件' username@ip:'目标传送目录'

通过以上命令,可以建立客户机和服务器之间或者两台服务器之间,文件单向传送的通道。

安全性

SSH旨在保证非安全网络环境(例如互联网)中信息加密完整可靠。不过,SSH它也被指出有被嗅探甚至解密的漏洞。这里我们就不做具体介绍了。