1.SSH的安全机制
SSH是建立在应用层基础上的安全网络协议。它是专为远程登录会话(甚至可以用Windows远程登录Linux服务器进行文件互传)和其他网络服务提供安全性的协议,可有效弥补网络中的漏洞。通过SSH,可以把所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。目前已经成为Linux系统的标准配置。
SSH之所以能够保证安全,原因在于它采用了非对称加密技术(RSA)加密了所有传输的数据。
第一种级别(基于口令的安全验证):只要你知道自己帐号和口令,就可以登录到远程主机。
第二种级别(基于密钥的安全验证):你必须为自己创建一对密钥,并把公钥放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密钥进行安全验证。
2.安装SSH
SSH分为客户端 openssh-client 和服务器 openssh-server,可以利用以下命令确认电脑上是否安装了客户端和服务器。
dpkg -l | grep ssh
如果只是想远程登陆别的机器只需要安装客户端(Ubuntu默认安装了客户端),如果要开放本机的SSH服务就需要安装服务器。
sudo apt-get install openssh-client
sudo apt-get install openssh-server
win10系统内置的OpenSSH安装
在win10系统任务栏搜索框中输入“添加或删除程序”,如下图所示:
点击“添加或删除程序”进去,点击“管理可选功能”,如下图所示:
进去管理可选功能界面之后,点击“添加功能”,如下图所示:
进去添加功能界面之后,可以看到“OpenSSH Client客户端”和“OpenSSH Server服务”,分别点击这两项进行安装,如下图所示:
点击其中一个“OpenSSH Client(Beta)客户端”,可以看到显示出安装按钮,点击进行安装就完成了,如下图所示:
安装完OpenSSH客户端和服务端之后,按win+R键打开运行,输入cmd,进去命令提示符之后,输入“ssh”就可以运行OpenSSH,如下图所示:
启动服务器的SSH服务
首先确认SSH服务器已经启动
ps -e | grep ssh
如果没有启动,可以使用如下命令启动
sudo /etc/init.d/ssh start
停止和重启ssh服务器的命令如下
sudo /etc/init.d/ssh stop
sudo /etc/init.d/ssh restart
3.SSH通过口令远程登录
口令登录只需要一条命令,命令格式为:ssh 客户端用户名@服务器ip地址
ssh ldz@192.168.0.1
如果需要调用图形界面程序可以使用 -X 选项
ssh -X ldz@192.168.0.1
如果客户机的用户名和服务器的用户名相同,登录时可以省略用户名。
ssh 192.168.0.1
还要说明的是,SSH服务的默认端口是22,也就是说,如果你不设置端口的话登录请求会自动送到远程主机的22端口。我们可以使用 -p 选项来修改端口号,比如连接到服务器的1234端口:
ssh -p 1234 ldz@192.168.0.1