SSH原理 and SSH远程登录,第1张

Secure Shell(SSH) 是由 IETF(The Internet Engineering Task Force) 制定的建立在应用层基础上的安全网络协议。它是专为远程登录会话(甚至可以用Windows远程登录Linux服务器进行文件互传)和其他网络服务提供安全性的协议,可有效弥补网络中的漏洞。通过SSH,可以把所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。目前已经成为Linux系统的标准配置。

SSH只是一种协议,存在多种实现,既有商业实现,也有开源实现。本文主要介绍OpenSSH免费开源实现在Ubuntu中的应用,如果要在Windows中使用SSH,需要使用另一个软件PuTTY。

SSH之所以能够保证安全,原因在于它采用了非对称加密技术(RSA)加密了所有传输的数据。

传统的网络服务程序,如FTP、Pop和Telnet其本质上都是不安全的;因为它们在网络上用明文传送数据、用户帐号和用户口令,很容易受到中间人(man-in-the-middle)攻击方式的攻击。就是存在另一个人或者一台机器冒充真正的服务器接收用户传给服务器的数据,然后再冒充用户把数据传给真正的服务器。

但并不是说SSH就是绝对安全的,因为它本身提供两种级别的验证方法:

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

第二种级别(基于密钥的安全验证):你必须为自己创建一对密钥,并把公钥放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密钥进行安全验证。服务器收到请求之后,先在该服务器上你的主目录下寻找你的公钥,然后把它和你发送过来的公钥进行比较。如果两个密钥一致,服务器就用公钥加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私钥在本地解密再把它发送给服务器完成登录。与第一种级别相比,第二种级别不仅加密所有传输的数据,也不需要在网络上传送口令,因此安全性更高,可以有效防止中间人攻击。

SSH分为客户端 openssh-client 和服务器 openssh-server,可以利用以下命令确认电脑上是否安装了客户端和服务器。

如果只是想远程登陆别的机器只需要安装客户端(Ubuntu默认安装了客户端),如果要开放本机的SSH服务就需要安装服务器。

首先确认ssh-server是否已经启动了

如图,sshd 表示ssh-server已经启动了。如果没有启动,可以使用如下命令启动:

停止和重启ssh服务的命令如下:

接下来就可以进行使用客户机远程登录服务器了~

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

如果需要 调用图形界面程序 可以使用 -X 选项

如果客户机的用户名和服务器的 用户名相同 ,登录时 可以省略 用户名。

还要说明的是,SSH服务的 默认端口是22 ,也就是说,如果你不设置端口的话登录请求会自动送到远程主机的22端口。我们可以使用 -p 选项来修改端口号,比如连接到服务器的1234端口:

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

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

意思是,该远程主机的真实性无法确定,其公钥指纹为 SHA256:s8pZiuKQr7k7f+57j22lk/IdWC8143VQKR+EabeP5,确定想要继续连接吗?

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

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

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

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

1、在本机生成密钥对

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

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

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

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

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

ssh-copy-id ldz@19216801

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

1)已获取登录实例的管理员帐号及密码(或密钥)。

2)云服务器实例已开通22号端口。

—使用密码登录

Host Name(or IP address) :服务器的IP地址;

Port :服务器的端口,必须设置为22;

Connect type :选择 “SSH”;

Saved Sessions :填写会话名称,例如 test。 配置 “Host Name” 后,再配置 “Saved Sessions” 并保存,则后续使用时您可直接双击 “Saved Sessions” 下保存的会话名称即可登录服务器;

登录完成后,命令提示符左侧将显示当前登录云服务器的信息。

—使用密钥登录

Ps: 当不存在私钥文件时,可以选择Conversions > Import key 导入公钥(pem)文件来生成私钥文件(ppk)

Host Name (IP address) :服务器的IP;

Port :服务器的端口,必须填 22;

Connect type :选择 “SSH”;

Saved Sessions :填写会话名称,例如 test。 配置 “Host Name” 后,再配置 “Saved Sessions” 并保存,则后续使用时您可直接双击 “Saved Sessions” 下保存的会话名称即可登录服务器;

登录完成后,命令提示符左侧将显示当前登录服务器的信息。

默认配置

Windows下有很多SSH工具。在这里我是用的是Putty。如果安装了Git并配置使用Putty的话,就不需要另外在安装Putty了。使用SSH连接服务器的命令如下:

ssh IP地址1

一般来说为了安全性考虑,端口号等一些参数并不会使用默认值。这样的话命令就变成这样:

ssh 用户名@IP地址 -p 端口号1

如果连接成功的话会提示你输入远程服务器的密码。全部成功之后SSH就会显示远程服务器的提示符,这时候就说明连接成功了。

密钥登录

每次登录SH都需要输入密码很麻烦,而且可能不太安全。SSH还能使用另外一种登录方式,也就是使用密钥登录。这种登录方式需要客户端生成一堆公钥私钥对,然后将公钥添加到服务器中,这样下次就可以直接登录了。

首先生成SSH密钥,依照提示输入信息即可。默认生成在用户主目录中的ssh文件夹中。带pub的是公钥,接下来需要添加到服务器中。

ssh-keygen1

然后将本地公钥添加到服务器中,需要使用另一个命令:

scp -P 端口号 本地文件路径 用户名@远程服务器地址:远程路径1

然后登陆服务器,找到复制进去的公钥,将公钥名字改为authorized_keys并添加到对应的ssh文件夹中。然后退出SSH重新登陆试试,成功的话不需要输入密码就会直接进入远程服务器。

本地和远程服务器都创建

在创建密钥的时候,可以定义加密类型和长度,具体可以参考ssh-keygen命令帮助。创建的过程中,首先会提示你 保存的位置 和 文件名 ,再提示你 给密钥加个密码 ,也可以直接回车不要密码。

公钥和私钥默认保存这用户目录的 /ssh/ 文件夹下。默认情况下, id_rsa 为私钥, id_rsapub 为公钥。

此时 还是需要用用户名和密码登录远程Linux服务器。使用vi编辑 /etc/ssh/sshd_config 文件,先打开 PubkeyAuthentication 和 PermitRootLogin ,一般只要把这几个参数前面的#(注释符)删掉即可。

重启ssh服务

在macOS端操作以下命令,把公钥上传到远程服务器,会提示输入远程的Linux服务器的密码。

在远程Linux服务器上,操作以下命令,把公钥 追加 到服务器ssh认证文件中:

如果没有 authorized_keys 这个文件,请到 ssh 文件夹下创建一个,并把权限设置为600。

追加好后,如果要禁止用户名密码登录,再编辑 /etc/ssh/sshd_config 文件,把 PasswordAuthentication 设置为no。

重启SSH服务(每次修改ssh配置都需要重启)

如果没有设置密钥密码,直接这终端输入 ssh root@IP 即可登录远程服务器。如果该用户下没有公钥,则会提示Permission denied。

1要登录腾讯云LINUX服务器,需要用SSH软件。例如XSHELL。

2以在东芝L315笔记本电脑为例。系统是WIN

VISTA。

3运行XSHELL软件,点击文件,新建。

4在主机处填写服务器IP地址。

5点击用户身份验证,填写服务器用户名和密码。LINUX服务器默认用户名是root。填好后点击确定。

6在会话对话框中选择刚才创建的服务器,点击连接。

7XSHELL软件会自动进行连接,连接成功后,就成功登录到云服务器了,可以进行安装面板等相应操作。

目录

一、介绍

二、使用SSH传输文件

21双击SSHClientexe​

22打开后的页面,按下回车会弹出页面

23输入远程服务器ip,输入密码

24在ssh登录页面输入ip地址 ,填写完毕用户名点击Connect

25输入密码点击OK

26成功连接

27windows向Linux互传文件

三、传输文件

31比如传输windows网易云音乐到Linux文件夹demo下

32传输文件查看​

33传输完毕 ​​​​​​​

231查看输入远程服务器ip:打开Linux的终端输入ifconfig,右键copy ip地址

1、生成SSH Keys

打开terminal执行如下命令:

ssh-keygen -t rsa -b 40961

然后再执行

cd ~/sshvi dodan200@163compub (拷贝其所有内容)123

2、将生成的SSH key拷贝添加到vultr的ssh中

将ssh key添加 

3、打开terminal用命令连接远程服务器

ssh root@4532160253 -p 22输入完密码,连接成功。123

4、 温馨推荐:在mac上操作服务器中的文件的软件中“FileZilla”是一款挺好用的软件。 

附上一张配置:

5、修改root密码

[root@localhost ~]# passwd Changing password for user root

New password:

Retype new password:

passwd: all authentication tokens updated successfully

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » SSH原理 and SSH远程登录

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情