SSH(Secure Shell)协议是一种用于在不安全网络上提供安全远程登录、命令执行和数据传输的加密网络协议,通过公钥加密和身份验证技术确保通信的安全性和隐私性。
SSH(Secure Shell)最初由Tatu Ylönen在1995年开发,现在已经发展成为一种广泛使用的标准工具,尤其是在Unix和Linux系统中。
因为telnet的明文传输特性,很多网络设备的登录方式也由telnet改为SSH登录。
以下是对SSH协议的详细介绍:
SSH主要通过加密技术和身份验证机制来确保通信的安全性。它使用公钥加密技术进行用户认证和会话密钥的交换,这使得数据在传输过程中即使被截获也无法被解密。此外,SSH还提供了数据完整性检查和重放攻击防护等功能。
SSH协议由以下几个主要组件构成:
SSH协议提供了多种功能,包括:
SSH的工作过程主要包括以下几个步骤:
SSH协议已经经历了多个版本的发展:
常见的SSH工具包括:
总的来说,SSH是一个强大的安全工具,为管理员和用户提供了一种安全、可靠的方式来访问和管理远程系统,以及在不安全的网络环境中传输数据。由于其强大的安全特性和广泛的兼容性,SSH已经成为运维工程师的必备工具之一。
OpenSSH 已添加至 Windows系统,在Windows系统中也可以安装和使用Windows自带的OpenSSH工具。通过Windows 设置来安装 OpenSSH可以参考这篇博客:Windows也能安装OpenSSH远程加密连接工具
大多数Ubuntu系统在安装的时候,会提示选择是否安装SSH。如果系统中没有安装,则需要进行SSH安装。
sudo apt-get update
sudo apt-get install ssh
默认选择ssh安装是,会找到关联包及需要安装的包:
The following additional packages will be installed:
libwrap0 ncurses-term openssh-server openssh-sftp-server ssh-import-id
Suggested packages:
molly-guard monkeysphere ssh-askpass
同意继续安装后,会开始下载命中和关联的包下载:
Do you want to continue? [Y/n] y
Get:1 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 openssh-sftp-server amd64 1:8.9p1-3ubuntu0.5 [38.7 kB]
Get:2 http://archive.ubuntu.com/ubuntu jammy/main amd64 libwrap0 amd64 7.6.q-31build2 [47.9 kB]
Get:3 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 openssh-server amd64 1:8.9p1-3ubuntu0.5 [435 kB]
Get:4 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 ssh all 1:8.9p1-3ubuntu0.5 [4842 B]
Get:5 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 ncurses-term all 6.3-2ubuntu0.1 [267 kB]
Get:6 http://archive.ubuntu.com/ubuntu jammy/main amd64 ssh-import-id all 5.11-0ubuntu1 [10.1 kB]
Fetched 804 kB in 4s (184 kB/s)
安装过程中也会自动创建RSA密钥文件,等待自行安装完成即可。
Setting up openssh-sftp-server (1:8.9p1-3ubuntu0.5) ...
Setting up ssh-import-id (5.11-0ubuntu1) ...
Setting up libwrap0:amd64 (7.6.q-31build2) ...
Setting up ncurses-term (6.3-2ubuntu0.1) ...
Setting up openssh-server (1:8.9p1-3ubuntu0.5) ...
Creating config file /etc/ssh/sshd_config with new version
Creating SSH2 RSA key; this may take some time ...
3072 SHA256:3aWRTPAKMhv2d+n26FiduYxCt40wfl0THM4D66FH2/s root@Ubuntu22 (RSA)
Creating SSH2 ECDSA key; this may take some time ...
256 SHA256:7el9/WDO00oT+UrYA+c1+6XYFLVM/EhsvZaRmXtaZeg root@Ubuntu22 (ECDSA)
Creating SSH2 ED25519 key; this may take some time ...
256 SHA256:nIqnuYpj+NY7HVJCU90jiR9PiWLMFjceZ67qHjOgzLY root@Ubuntu22 (ED25519)
安装完成,版本信息ssh is already the newest version (1:8.9p1-3ubuntu0.5)
mirror@Ubuntu22:~$ sudo apt-get upgrade ssh
[sudo] password for mirror:
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
ssh is already the newest version (1:8.9p1-3ubuntu0.5).
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
mirror@Ubuntu22:~$
在switch中启用SSH配置比较简单,参考如下:
switch(config)#ip ssh version 2 #启用SSH版本2
switch(config)#line vty 0 3 #指定在VTY线路上允许SSH登录
switch(config-line)#transport input ssh
若交换机默认没要RSA密钥文件,可以通过如下命令新建:
switch(config)crypto key generate rsa modulus 2048
[Huawei] ssh server enable #启用交换机上的SSH服务器功能
[Huawei] user-interface vty 0 15 #配置了VTY用户界面,允许SSH协议的入站连接
[Huawei-ui-vty0-15] protocol inbound ssh
通常交换机默认都建立RS的密钥,如果没有的话,可以通过以下命令新建:
[Huawei] crypto key generate rsa modulus 2048
或者想要清除之前的密钥文件,也可以执行如下命令:
[Huawei] crypto key zeroize rsa
以secureCRT为例,建立连接: