【Linux】SSH 使用密码公钥远程登录总结

【Linux】SSH 使用密码公钥远程登录总结,第1张

本文是笔者查阅网上资料做的总结,关于SSH原理,什么是对称加密和非对称加密,本文不过多介绍。这里介绍一下SHH的工作过程、配制方法,可能出现的问题及解决方法。

说明:本文中涉及的例子,SSH客户端为:本地主机A,SSH服务器为:服务器B

SSH协议采用C-S(客户端-服务器端)架构进行双方的身份验证以及数据的加密。

服务器端组件监听指定的端口,负责安全连接的建立、对连接方的身份认证、以及为通过身份认证的用户建立正确的环境。

客户端负责发起最初的TCP握手、安全连接的建立、验证服务器的身份与之前记录中的一致、并将自己的验证信息提供给服务器。

一个SSH会话的建立过程分为两个阶段。第一阶段,双方沟通并同意建立一个加密连接通道以供后续信息传输用。第二阶段,对请求接入的用户进行身份验证以确定服务器端是否要给该用户开放访问权限。

当客户端发起TCP连接时,服务器端返回信息说明自己支持的协议版本,如果客户端上支持的协议与之匹配,则连接继续。服务器会提供自己的公共主机密钥(public host key)以让客户端确认自己访问的是正确的机器。

然后,双方采用一种Diffie-Hellman算法共同为该会话建立密钥。每一方的一部分私有数据,加上来自对方的一部分公共数据,通过这种算法计算,能够得出完全相同的密钥用于本次会话。

整个会话的通讯内容都使用该密钥进行加密。这个阶段使用的公钥/私钥对与用户验证身份用的SSH密钥是完全无关的。

经典Diffie-Hellman算法的计算步骤如下:

这个共享密钥的加密方式被称为二进制数据包协议(binary packet protocol)。该过程能够让双方平等的参与密钥生成的过程,而不是由单方掌握。这种共享密钥生成的过程是安全的,双方没有交换过任何未经加密的信息。

生成的密钥是对称式密钥,一方用于加密信息的密钥等同于另一方用于解密信息的密钥,而任何第三方由于不持有该密钥,是无法解密双方传递的内容的。

会话加密通道建立后,SSH开始进入用户认证阶段。

下一步,服务器验证用户身份以决定是否准许其访问。验证有不同的方式,选择的验证方式取决于服务器的支持。

最简单的验证是密码验证:服务器要求客户端输入密码,客户端输入的密码经过上述的通道加密传输给服务器。

虽然密码是加密过的,然而该方法仍然不被推荐,因为用户经常为了省事而使用过于简单的密码,而这类密码很容易就能够被自动化脚本破解。

最流行的验证方式是SSH密钥对,这也是当前最推荐的方式。SSH密钥对是非对称密钥,私钥和公钥分别用于不同的功能。

公钥用于加密,而私钥用于解密。公钥可以随意上传、共享,因为公钥的流通并不会危及到私钥的保密性。

SSH密钥对的验证过程起始于上一部分加密通道建立之后,其具体执行步骤如下:

简单来说,服务器端用公钥加密信息,客户端用私钥解密信息以证明自己持有私钥。该过程同时使用了对称加密和非对称加密,两种方式各有自己的功用。

命令如下:

用户名:为要登录的服务器B中已存在的用户账户名

IP地址:为服务器B的IP地址

-p 端口号:用来指定端口号,默认为22

第一次登录时,会提示如下提示:

大概意思是说,你正在访问的主机不能验证它的真实性,它的RSA key(当前访问主机的公钥)指纹是怎样的,你确定要继续连接吗?

输入yes继续,会提示,已永久把当前访问主机的RSA key添加到了已知主机文件(用户目录下,ssh 文件夹中的knwon_hosts文件)中。之后再次 SSH 登录就不再有该提示了。

接着,输入登录账户的密码即可。

SSH 密码登录,需要服务器开启密码验证权限,编辑服务器SSH配置命令如下:

在 sshd_config 文件中,Protocol 2 下面 #PasswordAuthentication yes,将前面的#号去掉,保存退出。

公钥登录,即免密码登录。避免的每次登录都要输入的麻烦,也防止了中间人攻击。是SSH远程登录最常用的登录方式。

提示输入密钥对名称,直接回车,使用默认名称即可;

提示输入密码(使用私钥时,要输入密码),直接回车,不使用密码即可。

首先,登录服务器B,在进行下面的操作。

找到 #PubkeyAuthentication yes,删除 #号,保存退出。

重启 ssh 服务

也可指定验证私钥:

本地主机A,生成密钥对后:

sudo vim /etc/selinux/config

首先进入/etc目录下,/etc目录存放的是一些配置文件,比如passwd等配置文件,要想使用ssh远程登陆,需要配置/etc/ssh/sshd_config文件里的配置信息,使用vim编辑,在命令行模式下输入 vim /etc/ssh/sshd_config,进入之后,按“i”进入编辑状态,在其文件里找到并修改为:PasswordAuthentication yes , PermitRootLogin yes两行即可,

修改之后,按“esc”退出,并按“:wq”保存并退出,或直接按“:x”直接保存退出,(注意:此处的x为小写x,大写X是将文件内容加密,使用时细心注意),

退出编辑模式之后,回到命令模式,输入 sevice ssh start/stop/restart/status,启动/停止/重启/状态,选择start启动ssh服务。

如果上面开启SSH服务的命令不能用,可以使用命令:sudo service sshd start 试试,检查是否开启SSH服务使用命令:ps -e | grep sshd

此时可以查看ssh状态是否为运行状态,运行状态即可使用ssh远程登陆。

使用“ifconfig”命令查询ip地址

使用ssh登陆时,输入主机(linux的ip地址),账号,密码登陆!

如果需要远程连接SSH,需要把22端口在防火墙上开放,关闭防火墙,或者设置22端口例外  /etc/initd/iptables stop

怎么通过ssh登陆可参看下一篇“通过ssh实现远程登陆服务器!”

大致步骤为:

SSH 服务配置文件位置

/etc/ssh/sshd_config

# 修改配置

PasswordAuthentication yes

PermitRootLogin yes

# 启动SSH 服务

sevice ssh start/stop/status

安装SSH:yum install ssh

启动SSH: service sshd start

设置开机运行: chkconfig sshd on

在命令行中输入命令:

ssh username@ip_address -p port

之后系统会提示输入密码,输入后即可登录

如果不添加-p选项,则默认是22端口

还可以使用-l选项输入用户名:

ssh -l username ip_address -p port

更详细Linux命令介绍请看下图:

双击puttyexe 输入要登录的服务器的IP或者主机名。然后单击"Open"。

弹出登录界面,要求输入用户名,按回车。如下图:

输入用户名对应的密码,如下图:

SSH服务支持一种安全认证机制,即密钥认证。首先使用工具 PUTTYGENEXE 生成密钥对,如下图

该工具可以生成三种格式的key :SSH-1(RSA)

SSH-2(RSA) SSH-2(DSA) ,采用默认的格式即SSH-2(RSA)。Number of bits in a generated

key 这个是指生成的key的大小,这个数值越大,生成的key就越复杂,安全性就越高。

然后单击Generate 开始生成密钥对,如下图(注意的是,在这个过程中鼠标要来回的动,否则这个进度条是不会动的):

密钥对已经生成了。可以给密钥输入一个密码,(在Key Passphrase那里)也可以留空。然后点 Save public key 保存公钥,点 Save private Key 保存私钥

接下来就该到远程linux主机上设置了,

1)创建目录 /root/ssh 并设置权限

[root@localhost ~]# mkdir /root/ssh mkdir 命令用来创建目录

[root@localhost ~]# chmod 700 /root/ssh chmod 命令是用来修改文件属性权限

2)创建文件 / root/ssh/authorized_keys

[root@localhost ~]# vim /root/ssh/authorized_keys vim

3)打开刚才生成的public

key 文件,建议使用写字板打开,这样看着舒服一些,复制从AAAA开头至 “---- END SSH2 PUBLIC KEY

----“ 该行上的所有内容,粘贴到/root/ssh/authorized_keys 文件中,要保证所有字符在一行。(可以先把复制的内容拷贝至记事本,然后编辑成一行载粘贴到该文件中)。在这里要简单介绍一下,如何粘贴,用vim打开那个文件后,该文件不存在,所以vim会自动创建。按一下字母”i”然后同时按shift

+

Insert 进行粘贴(或者单击鼠标邮件即可),前提是已经复制到剪切板中了。粘贴好后,然后把光标移动到该行最前面输入ssh-ras ,然后按空格。再按ESC,然后输入冒号wq 即 :wq 就保存了。格式如下图:

步骤阅读

再设置putty选项,点窗口左侧的SSh –> Auth ,单击窗口右侧的Browse… 选择刚刚生成的私钥, 再点Open ,此时输入root,就不用输入密码就能登录了。

可以的 linux个人电脑连接linux服务器或者linux服务器连接linux服务器远程桌面都可以

1在系统中打开终端命令工具,然后输入并运行下面的命令,来安装xrdp工具,这个工具是Linux设置远程登录必须安装的工具:

sudo apt-get install xrdp

2安装xrdp工具后,在系统菜单中依次点击并打开“系统”→“首选项”→“远程桌面”

3在打开的“远程桌面首选项”中,勾选共享下面的“允许他人查看您的桌面”和“允许其他用户控制您的桌面”,若是对安全方面要求高,可以好勾选安全下面的“您必须为本机器确认每次访问”,这样别人每次远程登录你的系统,在你的桌面弹出是否允许别人登陆的提示,需要你允许,别人才能连接

4下面我们来验证在Linux系统打开远程桌面,在系统菜单中依次点击并打开“应用程序”→“互联网”→“终端服务客户端”

5在打开的终端服务客户端对话框的,计算器后面输入我们要远程登录的计算机的IP地址,协议保持默认,其它可以不用填写,然后点击右下方的“连接”按钮

6之后就打开远程登录界面,在Module里面选择“sesman-Xvnc”,一般默认为这个,若不是这个那么请选择为这个协议,然后再下面输入远程的Linux系统给登陆的用户名和密码,之后,点下面的OK按钮

7点OK按钮后,会检查登陆协议、用户名和密码,验证完成后,就开始设置一些登陆的桌面环境,不要点击右下方的OK按钮,桌面能正常连接会自动关闭这个对话框,若是验证出错,会有提示信息

8登录到远程桌面后,就和实际使用自己的电脑一样的,可以做任何操作,只要你有这些操作权限

发布了图坑爹,不会再问我

最近有朋友问小编如何远程连接linux服务器,有时候我们对服务器进行运维,经常会需要查看服务器是否健康运行,可以通过远程连接Linux服务器来实现,那么我们应该如何进行远程登录呢?别着急,小编这就为大家带来linux远程登录服务器的方式图文步骤,希望能够解答大家的疑惑。

linux远程登录服务器的方式图文步骤:

1、远程登陆linux服务器需要下载一个软件,非常好用,名字是SecureCRT5,百度搜索有很多;

2、运行安装包,一路下一步就可以了;

3、安装好后,运行该软件;

4、点击左上角第二个带闪电的图标,快速新建一个连接;

5、根据情况填服务器地址和端口,其他保持默认即可;

6、点击确定后,弹出对话框,要求输入用户名;

7、输入用户名点确定,提示输入密码;

8、这样就连上了,可以输入命令,和linux的端口一样的操作,这个软件优势在于支持复制粘贴,有很多很长的命令或者字符,只需要粘贴就可以了。

好了,以上就是关于如何远程连接linux服务器的全部内容了,希望本篇linux远程登录服务器的方式图文步骤对你有帮助。

打开终端使用ssh命令链接远程服务器。 命令格式 : ssh root@19216811(root对应你使用的用户名,192……对应的服务器ip地址,一般服务器端口22,命令默认22如果需要更改端口在ssh后面 -p 端口)详细了解linux,请关注《linux就该这么学》官网。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 【Linux】SSH 使用密码公钥远程登录总结

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情