SSH

200 阅读2分钟

1.概念

SSH,secure shell,是由 IETF(The Internet Engineering Task Force) 制定的建立在应用层基础上的安全网络协议

  1. 专为远程登录会话(甚至可以用Windows远程登录Linux服务器进行文件互传)和其他网络服务提供安全性

  2. 数据传输是加密的,可以防止信息泄漏 (能够防止DNS欺骗和IP欺骗)

  3. 数据传输是压缩的,可以提高传输速度

2.Ubuntu SSH 连接

#ubuntu 安装ssh
sudo apt install openssh-server
#查看ssh状态
sudo systemctl status sshd
#启动ssh
sudo systemctl start sshd
#查看防火墙状态,系统启动时默认关闭
sudo ufw status
#关闭防火墙
sudo ufw disable
#查看ubuntu的ip
ifconfig  或者  ip address  //前者需要安装net-tools  sudo apt install net-tools

//可能会用到的指令
#停止ssh
sudo systemctl stop sshd
#重启
sudo systemctl restart sshd
#默认自启动
sudo systemctl enable sshd

MobaXterm

复制粘贴密码:shift+insert

3.Windows OpenSSH

1.ssh版本号

ssh -V

2.启动ssh(Running)

搜索计算机管理,左栏找到服务,找到OpenSSH客户端和服务器,右键属性,将启动类型改为“自动”,点击确定后,再右键点击“启动”

Get-Service -Name *ssh*    
//如下图所示,左侧“Status”列显示“Running”,说明服务启动成功

3.监听22号端口(Listening)

检查服务器是否已经开始监听22号端口(port 22 ,默认)

netstat -an | findstr :22
//如下图所示,服务器开始正常监听

4.查看PC的IP地址

ipconfig

5.ssh连接

#设置ssh服务将在系统启动时自动启动
Set-Service -Name sshd -StartupType 'Automatic'
#启动ssh
Start-Service sshd
#ssh服务是否监听port22
netstat -an | findstr /i ":22"
#设置使得windows防火墙允许ssh服务访问
Get-NetFirewallRule -Name *OpenSSH-Server* | select Name, DisplayName, Description, Enabled
#连接ssh
ssh mn@192.168.111.133


###开启X11转发,使得windows客户端可以看到图形程序的运行结果,用到 Xserver → 开源的 VcXsrv 实现
#在 Powershell 上手动设置 DISPLAY 环境变量,供 ssh 读取和连接
$env:DISPLAY="127.0.0.1:0.0"
# -XY 选项是设置该连接需要 X11 转发,其中 -Y 代表,不验证 xauth(这个是 Windows 上 Xauth 和 SSH 的 bug)。-C 则代表转发的信息经过压缩,可以减少流量的使用,提升顺畅性
ssh -CXY mn@192.168.111.133
xclock  #时钟


//可能会用到的指令
#重启ssh
Restart-Service sshd
#启动记事本(Notepad)并尝试打开位于C:\Programdata\ssh\sshd_config的文件
Start-Process Notepad C:\Programdata\ssh\sshd_config
echo $env:DISPLAY
ssh -X <your_user_id>_@_<server_address>
#用X11转发连接服务器
ssh -X BR_User@192.168.66.27
xcalc
ForwardX11 yes
ForwardX11Trusted yes