首页 > 编程知识 正文

linux ssh远程登录不上,ssh外网远程登录

时间:2023-05-04 18:31:36 阅读:36506 作者:3533

目录

SSH的安全机制

安装SSH

启动服务器的SSH服务

SSH两个级别的远程登录

SSH高级APP应用程序

安全shell (ssh )是由IETF (以太网互联任务组)制定的基于APP应用层的安全网络协议。 这是一种协议,用于提供远程登录会话和其他网络服务的安全性,这些会话还可以在Windows上远程登录到Linux服务器并与文件进行交换,以及有效弥补网络漏洞。 SSH允许对传输的所有数据进行加密,并防止DNS欺骗和IP欺骗。 另一个优点是传输的数据被压缩,因此可以缩短传输时间。 它现在是Linux系统的标准配置。

sh只是一个协议,有各种各样的实现,有业务实现和开源实现。 本文主要介绍OpenSSH在Ubuntu上的免费开源实现的APP应用。 要在Windows上使用SSH,必须使用其他软件PuTTY。

SSH的安全机制SSH对使用非对称加密技术(RSA )传输的所有数据进行加密,因此是安全的。

传统的网络服务程序(如FTP、Pop和Telnet )本质上不安全,因为它以明文形式在互联网上发送数据、用户帐户和用户密码,所以man-in-the-middle 是另一个人或机器冒充真服务器接收用户发送到服务器的数据,然后冒充用户将数据发送到真服务器。

但是,SSH提供了两种级别的认证方法,因此不一定绝对安全。

第一级(基于密码的安全验证)只要知道自己的帐户和密码,就可以登录远程主机。 所有传输的数据都将被加密,但不能保证连接的服务器就是您想要连接的服务器。 另一台服务器可能正在冒充真正的服务器,也就是说,可能受到了“中间人攻击”方式的攻击。

第二层(基于密钥的安全验证) :必须为自己创建密钥对,并将公钥放在要访问的服务器上。 连接到SSH服务器时,客户端软件会向服务器发出请求,要求使用您的私钥进行安全认证。 服务器收到请求后,首先在该服务器上您的主目录下查找您的公钥,并将它与您发送的公钥进行比较。 如果两个密钥匹配,服务器将使用公钥加密“挑战”并将其发送到客户端软件。 客户端软件收到“挑战”后,可以使用您的私钥在本地解密,然后将其发送到服务器以完成登录。 与第一级相比,第二级不仅加密所有传输的数据,而且不需要在网络上传输密码,因此安全性高,可以有效防止中间人攻击。

SSH的安装SSH分为客户端openssh-client和服务器openssh-server,并使用以下命令验证计算机上是否安装了客户端和服务器

dpkg -l | grep ssh

如果您只是想远程登录到另一台计算机,则可以安装客户端(Ubuntu默认安装了客户端),而且必须安装服务器才能打开本机SSH服务。

sudo apt-getinstallopenssh-clientsudoapt-getinstallopenssh-server http://www.Sina.com /首先确保ssh-server已启动

ps -e | grep ssh

如图所示,sshd表示ssh-server已启动。 如果未启动,可以使用以下命令启动:

sudo /etc/init.d/ssh start中的停止和重新启动ssh服务命令如下:

停止sudo/etc/init.d/ssh stop # serverssh服务重新启动sudo/etc/init.d/ssh restart # serverssh服务时,使用客户端远程登录

SSH两个级别的远程登录

p>一、口令登录

口令登录非常简单,只需要一条命令,命令格式为: ssh 客户端用户名@服务器ip地址  eg:

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

客户机必须要知道服务器的ip地址。可以在服务器端电脑上利用 ifconfig 命令查看该机的ip地址:

如果是第一次登录远程主机,系统会给出下面提示:

意思是,该远程主机的真实性无法确定,其公钥指纹为 SHA256:FFobshqrGOachj7Xp4LsJ9+xkNBlyyOe8ZIPl7K+qQI,确定想要继续连接吗?

输入yes即可。这时系统会提示远程主机被添加到已知主机列表。

 

然后会要求我们输入远程主机的密码,输入的密码正确就可以成功登录了。命令提示符会修改为远程主机的提示符,现在开始,终端中输入的命令都将在服务器中执行。

我们可以通过 Ctrl+D 或者 exit 命令退出远程登录

 

二、公钥登录

每次登录远程主机都需要输入密码是很不方便的,如果想要省去这一步骤,可以利用密钥对进行连接,还可以提高安全性。

1、在本机生成密钥对

使用ssh-keygen命令生成密钥对:

ssh-keygen -t rsa #-t表示类型选项,这里采用rsa加密算法

然后根据提示一步步的按enter键即可(其中有一个提示是要求设置私钥口令passphrase,不设置则为空,这里看心情吧,如果不放心私钥的安全可以设置一下),执行结束以后会在 /home/当前用户 目录下生成一个 .ssh 文件夹,其中包含私钥文件 id_rsa公钥文件 id_rsa.pub

2、将公钥复制到远程主机中

使用ssh-copy-id命令将公钥复制到远程主机。ssh-copy-id会将公钥写到远程主机的 ~/ .ssh/authorized_key 文件中

ssh-copy-id ldz@192.168.0.1

经过以上两个步骤,以后再登录这个远程主机就不用再输入密码了。

cheers~

 

SSH的高级应用

使用远程主机不中断的跑程序

当我们利用ssh在远程主机上跑程序的时候,只要关闭了终端就会中断ssh连接,然后远程主机上正在跑的程序或者服务就会自动停止运行。我们可以利用 nohup + 需要运行的程序 使运行的程序在切断ssh连接的时候仍然能够继续在远程主机中运行。nohup即no hang up(不挂起)。

除此之外还有很多远程操作应用,包括 数据传输、端口操作(将不加密的网络连接绑定到ssh端口实现间接加密) 等等,可以参考柚子皮大神的博客:https://blog.csdn.net/pipisorry/article/details/52269785

 

 

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。