一般linux系统都自带ssh,如果没有就可以安装一下:
sudo apt update #更新数据 sudo apt upgrade #更新软件 # Ubuntu: sudo apt install openssh-server #下载安装ssh服务的服务器 sudo apt install openssh-client #下载安装ssh服务的客户端
这里给出的是ubuntu安装命令,其它系统请参考具体的安装命令
windows一般自带ssh客户端,如果没有可以参照以下官方文档教程进行安装这里给出的是ubuntu安装命令,其它系统请参考具体的安装命令
windows一般自带ssh客户端,如果没有可以参照以下官方文档教程进行安装:
SSH 客户端:
3.1 基础知识:
位置:
- Linux:系统的位置是:
/usr/bin/ssh
- Windows:系统的位置是:
C:\Program Files\OpenSSH-Win64\ssh.exe
用法:
ssh 最常见的用途就是登录服务器,这要求服务器安装并正在运行 SSH 服务器软件。
ssh 登录服务器的命令如下:
ssh hostname
上面命令中,hostname是主机名,它可以是域名,也可能是 IP 地址或局域网内部的主机名。不指定用户名的情况下,将使用客户端的当前用户名,作为远程服务器的登录用户名。如果要指定用户名,可以采用下面的语法。
ssh user@hostname
上面的命令中,用户名和主机名写在一起了,之间使用@分隔。
用户名也可以使用ssh的-l参数指定,这样的话,用户名和主机名就不用写在一起了。
ssh -l username host
ssh 默认连接服务器的22端口,-p参数可以指定其他端口。
ssh -p 8821 foo.com
上面命令连接服务器foo.com的8821端口。
连接过程:
ssh 连接远程服务器后,首先有一个验证过程,验证远程服务器是否为陌生地址。
如果是第一次连接某一台服务器,命令行会显示一段文字,表示不认识这台机器,提醒用户确认是否需要连接。
The authenticity of host 'foo.com (192.168.121.111)' can't be established. ECDSA key fingerprint is SHA256:Vybt22mVXuNuB5unE++yowF7lgA/9/2bLSiO3qmYWBY. Are you sure you want to continue connecting (yes/no)?
上面这段文字告诉用户,foo.com这台服务器的指纹是陌生的,让用户选择是否要继续连接(输入 yes 或 no)。
所谓“服务器指纹”,指的是 SSH 服务器公钥的哈希值。每台 SSH 服务器都有唯一一对密钥,用于跟客户端通信,其中公钥的哈希值就可以用来识别服务器。
ssh-keygen -l -f /etc/ssh/ssh_host_ecdsa_key.pub
256 da:24:43:0b:2e:c1:3f:a1:84:13:92:01:52:b4:84:ff (ECDSA)
上面的例子中,ssh-keygen -l -f命令会输出公钥/etc/ssh/ssh_host_ecdsa_key.pub的指纹。
ssh 会将本机连接过的所有服务器公钥的指纹,都储存在本机的~/.ssh/known_hosts文件中。每次连接服务器时,通过该文件判断是否为陌生主机(陌生公钥)。
在上面这段文字后面,输入yes,就可以将当前服务器的指纹也储存在本机~/.ssh/known_hosts文件中,并显示下面的提示。以后再连接的时候,就不会再出现警告了。
Warning: Permanently added 'foo.com (192.168.121.111)' (RSA) to the list of known hosts
然后,客户端就会跟服务器建立连接。接着,ssh 就会要求用户输入所要登录账户的密码。用户输入并验证密码正确以后,就能登录远程服务器的 Shell 了。