Ubuntu环境下SSH的安装及使用详解

Ubuntu环境下SSH的安装及使用详解

本文主要介绍了SSH在Ubuntu环境下的安装和使用的详细说明。边肖认为这很好。现在分享给大家,给大家一个参考。来和边肖一起看看吧。

SSH指的是Secure Shell,这是一种安全的传输协议。Ubuntu客户端可以通过SSH访问远程服务器。

SSH的介绍和工作机制

SSH简介

传统的网络服务程序,如ftp、POP、telnet等,本来就不安全,因为它们使用明文在网络上传输密码和数据,别有用心的人很容易截获这些密码和数据。而且这些服务程序的安全验证方式也有其弱点,即容易被“中间人”攻击。所谓“中间人”攻击,就是“中间人”伪装成真实的服务器接收你发送给服务器的数据,然后伪装成你发送数据给真实的服务器。当服务器和你之间的数据传输被“中间人”改变了,就会出现严重的问题。

从前,一个叫塔图伊尔的人?nen的芬兰程序员开发了一种叫做SSH(Secure Shell的缩写)的网络协议和服务软件。通过使用SSH,可以对所有传输的数据进行加密,让“中间人”攻击无从下手,还可以防止DNS和IP欺骗。一个额外的好处是传输的数据是压缩的,所以传输速度可以加快。SSH有很多功能。虽然很多人只是把Secure Shell作为Telnet的替代品,但是你可以用它来保护你的网络连接的安全。您可以通过本地或远程系统上的安全Shell转发其他网络通信,如POP、X、PPP和FTP。您还可以转发其他类型的网络通信,包括CVS和任何其他TCP通信。此外,您可以使用带有TCP wrapper的安全外壳来加强连接的安全性。此外,Secure Shell还有其他一些方便的功能,可用于Oracle、远程备份和SecurID卡等附加身份验证等应用。

SSH的工作机制

SSH分为两部分:客户机部分和服务器部分。

服务器是一个恶魔,它在后台运行并响应来自客户端的连接请求。服务器一般是sshd进程,提供远程连接的处理,包括公钥认证、密钥交换、对称密钥加密和不安全连接。

客户端包括ssh程序和其他应用程序,如scp(远程复制)、slogin(远程登录)、sftp(安全文件传输)等。

它们的工作机制大致是:本地客户端向远程服务器发送连接请求,服务器检查应用的数据包和IP地址,然后将密钥发送给SSH客户端,再将密钥发送回本地的服务器,从此建立连接。我刚才说的只是SSH连接的一般流程。SSH 1.x和SSH 2.x在连接协议上还是有一些区别的。

SSH被设计成在不使用超级服务器(inetd)的情况下独立工作。虽然SSH进程可以在inetd上通过tcpd运行,但是完全没有必要。SSH服务器启动后,sshd运行并监听默认端口22(您可以使用# ps -waux | grep sshd来查看sshd是否已经正确运行)。如果不是SSH通过inetd启动,那么SSH会一直等待连接请求。当请求到来时,SSH守护进程将生成一个子进程,这个子进程将进行连接处理。

但是由于版权和加密算法的限制,现在很多人转向OpenSSH。OpenSSH是SSH的替代品,而且是免费的。

SSH由客户端和服务器软件组成,有两个不兼容的版本:1.x和2.x,使用SSH 2.x的客户端程序无法连接SSH 1.x的服务程序,OpenSSH 2.x同时支持SSH 1.x和2.x。

SSH分客户端openssh-client和openssh-server

如果只是想登录其他机器的ssh,只需要安装openssh-client即可(ubuntu有默认安装,如果没有,sudo apt-get安装OpenSSH-Client),如果想在这台机器上打开SSH服务,则需要安装openssh-server。

一、安装客户端

Ubuntu默认安装了ssh客户端。

Sudo apt-get安装ssh或sudo apt-get安装OpenSSH客户端

ssh-keygen

(按Enter键设置默认值)

默认生成id_rsa和id_rsa.pub文件,分别是私钥和公钥。

说明:如果sudo apt-get insall ssh失败,可以使用sudo apt-get install OpenSSH-client进行安装。

假设服务器ip为192.168.1.1,ssh服务端口号为22,服务器上有一个用户作为root;

使用ssh登录到服务器的命令是:

sshp 22 root @ 192 . 168 . 1 . 1

输入root用户的密码。

二、安装服务端

Ubuntu默认没有安装SSH服务器。使用以下命令安装它:

安装openssh-server

然后确认sshserver是否启动:(或使用“netstat -tlp”命令)

ps -e|grep ssh

如果只有ssh-agent可用,则ssh-server尚未启动,需要/etc/init.d/ssh start。如果看到sshd,说明ssh-server已经启动。

如果没有,你可以这样开始:

sudo/etc/init.d/ssh start

事实上,如果没有特殊要求,OpenSSH服务器会安装在这里。但是,进一步设置可以使OpenSSH登录时间更短、更安全。这一切都是通过修改openssh的配置文件sshd_config来实现的。

三、SSH配置

Ssh-server配置文件位于/etc/ssh/sshd_config中,您可以在其中定义Ssh的服务端口。默认端口是22,你可以自己定义其他端口号,比如222。然后重新启动SSH服务:

sudo /etc/init.d/sshresart

通过修改配置文件/etc/ssh/sshd_config,您可以更改ssh登录端口并禁止root登录。更改端口可以防止被端口扫描。

sudo CP/etc/ssh/sshd _ config/etc/ssh/sshd _ config . original

sudochmod a-w/etc/ssh/sshd _ config . original

编辑配置文件:

gedit /etc/ssh/sshd_config

找到#Port 22,删除注释,将其修改为五位数端口:Port 22333。

找到#PermitRootLogin yes,去掉注释,修改为:PermitRootLogin no

配置后重新启动:

sudo/etc/init.d/ssh重启

四、SSH服务命令

服务停止:sudo /etc/init.d/ssh停止

启动服务:sudo /etc/init.d/ssh start

重新启动服务:sudo /etc/init.d/sshresart

断开连接:退出

登录:sshroot@192.168.0.100

作为192.168.0.100机器上的用户,您需要输入密码。

五、SSH登录命令

常见格式:ssh[-登录名称] [-p端口] [用户@]主机名

更多细节可以用ssh -h H查看。

举个例子

未指定用户:ssh 192.168.0.1

指定用户:

ssh -l根192.168.0.1

ssh root@192.168.0.1

如果您修改了ssh登录端口,您可以:

ssh -p 22333 192.168.0.111

216.230.230.105 p 22333

root@216.230.230.105

六、提高登录速度

远程登录时,您可能会发现输入用户名后需要很长时间才会提示输入密码。其实这是因为sshd需要检查客户端的dns信息。您可以通过禁用此功能来大大提高登录速度。首先,打开sshd_config文件:

sudo nano /etc/ssh/sshd_config

找到GSSAPI选项部分,并注释掉以下两行:

# gssapiaauthentication yes # gssapidelegatecredentials no,然后重新启动ssh服务:

sudo /etc/init.d/ssh重启

再次尝试登录,应该会很快。

七、利用 PuTTy 通过证书认证登录服务器

在SSH服务中,所有内容都是加密传输的,安全性基本有保障。但是如果可以使用证书认证,安全性就上一层楼,经过一定的设置,还可以达到证书认证自动登录的效果。

首先,修改sshd_config文件并打开证书身份验证选项:

rsauthentication yes publikeyaauthentication yes sauthorizedkeys file % h/。ssh/authorized _ keys修改后,重启ssh服务。

接下来,我们需要为SSH用户建立私有和公共密钥。首先,要登录需要建立密钥的账户,请在这里注销root用户,必要时用su命令切换到其他用户。然后运行:

ssh-keygen

在这里,我们可以将生成的密钥存储在默认目录中。在建立的过程中,会提示您输入passphrase,相当于给证书加了密码,也是提高安全性的措施,这样即使证书被不小心复制走也不会害怕。当然,如果这个留空的话,后面还可以实现PuTTy通过证书认证的自动登录。

Ssh-keygen命令生成两个密钥。首先,我们需要重命名公钥,并将其留在服务器上:

cd ~/。ssh mv id_rsa.pub授权_密钥

然后从服务器上复制私钥id_rsa,删除服务器上的id_rsa文件。

服务器上的设置已经完成,下面的步骤需要在客户端计算机上完成。首先,我们需要将id_rsa文件转换成PuTTy支持的格式。这里我们需要使用工具推杆:

在PuTTyGen界面点击Load按钮,选择id_rsa文件,输入passphrase(如果有),然后点击Save PrivateKey按钮,这样PuTTy接受的私钥就准备好了。

打开PuTTy,输入会话中服务器的IP地址,点击Connection-SSH-Auth下的Browse按钮,选择刚刚生成的私钥。然后返回到连接选项,在自动登录用户名中输入证书所属的用户名。返回“会话”选项卡,输入名称并保存此会话。点击底部的Open,应该可以通过证书认证登录到服务器。如果有passphrase,登录时会要求输入passphrase,否则直接登录服务器,非常方便。

这就是本文的全部内容。希望对大家的学习有帮助,支持我们。

Ubuntu环境下SSH的安装及使用详解