700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Linux配置SSH远程登录管理

Linux配置SSH远程登录管理

时间:2020-05-22 23:39:54

相关推荐

Linux配置SSH远程登录管理

目录

一、SSH协议

1.SSH简介

2.SSH的优点

3.SSH远程控制软件及服务

二、SSH远程管理配置

1.配置OpenSSH服务端

2.使用SSH客户端软件

(1)SSH远程登录

(2)scp远程传输文件

3.SSH登录验证的两种验证方式

(1)密码验证

(2)密钥对验证

一、SSH协议

1.SSH简介

SSH 为 Secure Shell的缩写, 为建立在应用层基础上的安全协议。SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。

2.SSH的优点

数据加密数据压缩(提高传输速率)

传统的网络服务程序,如:ftp、pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据。而且,这些服务程序的安全验证方式也是有其弱点的, 就是很容易受到“中间人”这种方式的攻击。

通过使用SSH,你可以把所有传输的数据进行加密,这样"中间人"这种攻击方式就不可能实现了,而且也能够防止DNS欺骗和IP欺骗。

使用SSH,还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替telnet,又可以为ftp、PoP、甚至为PPP提供一个安全的"通道"

3.SSH远程控制软件及服务

SSH客户端:Putty、Xshell、CRT、MobaXterm

用于远程连接主机的软件,企业一般使用Putty这类开源软件。

SSH服务端: OpenSSH

OpenSSH是实现 SSH协议的开源软件项目,适用于各种UNIX、Linux操作系统。Centos 7系统默认已安装openssh相关软件包,并已将sshd 服务添加为开机自启动。

sshd服务

sshd服务默认使用的是TCP的22端口。

sshd服务的默认配置文件在/etc/ssh下,ssh_config是针对客户端的配置,sshd_config是针对服务端的配置。

二、SSH远程管理配置

1.配置OpenSSH服务端

服务端配置文件sshd_config常用字段及解释

2.使用SSH客户端软件

(1)SSH远程登录

[root@localhost1 ~]# ssh [-p 端口号] [用户名@]服务端ip // 远程登录指定服务端

-p 指定远程登录的端口,不写默认使用22端口

ip前加上"用户名@"指定登录的用户,不写默认使用当前用户

[root@localhost2 ~]# exit//使用exit命令退出登录

//使用root用户登录192.168.116.20主机[root@localhost1 ~]#ssh -p 22 root@192.168.116.20The authenticity of host '192.168.116.20 (192.168.116.20)' can't be established.ECDSA key fingerprint is SHA256:BhhxtVT0Hy+tIQ4bMqAvyKJUBldEolUbURl/42FYg4o.ECDSA key fingerprint is MD5:a0:5b:4f:33:31:ef:38:01:31:3b:b4:14:ad:a1:23:29.Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added '192.168.116.20' (ECDSA) to the list of known hosts.root@192.168.116.20's password: Last login: Tue Aug 16 09:09:20 'abrt-cli status' timed out//登录成功[root@localhost2 ~]#//退出登录[root@localhost2 ~]#exit登出Connection to 192.168.116.20 closed.//回到本机[root@localhost1 ~]#

注:当用户第一次登录ssh服务器时,必须接受服务器发来的ECDSA密钥(根据提示输入"yes")后才能继续验证。接收的密钥信息将保存到~/. ssh/know_hosts文件中。密码验证成功以后,即可登录目标服务器的命令行环境中。

//刚刚登录时收到的密钥[root@localhost1 ~]#cat .ssh/known_hosts 192.168.116.20 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBCBhY9r8mXXzHMu2IMqVnvgW99vU8Xnio3MpUrkYwbrzfzXG37IiWriziEwIMm5c8XlS+q/iIj8Cdm+drMB6REk=

(2)scp远程传输文件

上传文件(客户端传到服务端)

[root@localhost1 test]# scp [-P 端口号]文件名 [用户名@]服务端ip:上传到的目录

-P指定远程登录的端口,不写默认使用22端口

-r 目录 递归传输目录

ip前加上"用户名@"指定登录的用户,不写默认使用当前用户

//首先创建文件夹用于scp上传[root@localhost1 /]#mkdir -p /data/test[root@localhost1 /]#cd /data/test/[root@localhost1 test]#touch 1.txt//使用root用户scp递归将/data目录上传到服务端的/root目录下[root@localhost1 test]#scp -P 22 -r /data root@192.168.116.20:/rootroot@192.168.116.20's password: 1.txt100% 00.0KB/s 00:00 //进入服务机,发现家目录多了data目录[root@localhost2 ~]#lsanaconda-ks.cfg initial-setup-ks.cfg 模板 图片 下载 桌面data 公共 视频 文档 音乐//查看这个data目录,确认是scp上传过来的[root@localhost2 ~]#cd data[root@localhost2 data]#tree.└── test└── 1.txt1 directory, 1 file

下载文件(从服务端下载到客户端)

[root@localhost1 test]# scp [-P 端口号][用户名@]服务端ip:文件路径 保存到本地的路径

-P指定远程登录的端口,不写默认使用22端口

-r 目录 递归传输目录

ip前加上"用户名@"指定登录的用户,不写默认使用当前用户

//在服务端新建测试文件[root@localhost2 ~]#touch test.txt[root@localhost2 ~]#lsanaconda-ks.cfg test.txt 模板 图片 下载 桌面initial-setup-ks.cfg 公共视频 文档 音乐//以root用户scp远程下载服务端的test.txt到/data目录下[root@localhost1 ~]#scp -P 22 root@192.168.116.20:/root/test.txt /dataroot@192.168.116.20's password: test.txt 100% 00.0KB/s 00:00 //查看发现获取成功[root@localhost1 ~]#ls /datatest.txt

3.SSH登录验证的两种验证方式

(1)密码验证

对服务器中本地系统用户的登录名称、密码进行验证。简便,但可能会被暴力破解

默认情况下,远程连接都是使用的密码验证,即需要输入登录用户的密码。

(2)密钥对验证

要求提供相匹配的密钥信息才能通过验证。通常先在客户端中创建一对密钥文件(公钥、私钥),然后将公钥文件放到服务器中的指定位置。远程登录时,系统将使用公钥、私钥进行加密/解密关联验证。能增强安全性,且可以免交互登录。

公钥和私钥的关系:

公钥和私钥是成对生成的,这两个密钥互不相同,可以互相加密和解密。不能根据一个密钥来推算出另一个密钥(非对称密钥)。公钥对外公开,私钥只有私钥的持有人才知道。

SSH密钥对验证过程:

配置使用密钥对验证登录

1.生成密钥对

[root@localhost1 ~]#ssh-keygen [-t 加密算法] //生成密钥对

-t 指定加密算法(rsa、dsa、ecdsa等)

//生成密钥对(使用dsa加密算法)[root@localhost1 ~]#ssh-keygen -t dsaGenerating public/private dsa key pair.Enter file in which to save the key (/root/.ssh/id_dsa): --指定密钥对文件位置(默认当前用户家目录的.ssh/下)Enter passphrase (empty for no passphrase): --是否给密钥对设置密码(为空则不指定)Enter same passphrase again:--指定后需要重输密码校验Your identification has been saved in /root/.ssh/id_dsa. --私钥位置Your public key has been saved in /root/.ssh/id_dsa.pub. --公钥位置The key fingerprint is:SHA256:vjGR6YAff/Nah7t+m1Ou6C0YWcrvUZaZ0tRQ5tpGVdg root@localhost1The key's randomart image is:+---[DSA 1024]----+| .+*|| .=E|| . +||. o .o B || . o S. +. O o||. * .= = ..||. * o++ .o || =.+o*o..|| . .=O+=+ |+----[SHA256]-----+[root@localhost1 ~]#ls .ssh/id_dsa id_dsa.pub known_hosts

2.1将公钥发送给服务器(手动)

//查看公钥文件[root@localhost1 ~]#cat .ssh/id_dsa.pub ssh-dss AAAAB3NzaC1kc3MAAACBAI9yxdO7V/W/ATYiSoKz4MbWZDRpE902lBpH0i5dmghNwWAxqV0DRMjetyvUc+R466NdXmp7N32ARuj+wEMNZ73g3FdurzkhwRmGi8RhR9obYkL3cqS34dmQvAWAlYmNYfqIg8Z2nv9KLwCrsnKfJDevlgmjpyj+Bxzx0smpIq/TAAAAFQDUYT4psdnG+JAUJfUhTCBz5AivsQAAAIAVLo/baTi/Z/xDod4N+bLwDYylsGKyWUuB8pTsMz/IPBH6KWPMWB62H9cO4rXhX2VQsKQXFBv77gqhpqzCB0iqQvc1DOHNXIp33tRlOvLntTYR02jduFnMtw9XyKjpIRaQmON3JY97liYL9zqP4Dd2RwSbPvSAhCPgWWL6lEX7awAAAIB8ad42MTdKzRVhZ3wu6KBmvn0LmeiX0NO5WQcPoOfwSqH7hCbhV2Dy+BfM3OklL6I3HesTajtuyLy6UBL83ayrvl8AXO0y7NCPOuZCm59YYXF8SE7pQz7JZBFyA9jTm9Ba4W0rrwHo3x1OkYXFd5LQowO71k/KKuWGQMGssR8Uiw== root@localhost1//在服务端当前用户家目录下的.ssh下创建authorized_keys(用于存放公钥)[root@localhost2 ~]cd .ssh[root@localhost2 .ssh]#vim authorized_keys将之前生成的公钥复制进这个文件

2.2将公钥发送给服务器(自动)

[root@localhost2 ~]# ssh-copy-id -i 公钥文件 用户@服务端ip

//使用命令自动传送公钥文件,会自动生成authorized_keys文件[root@localhost1 ~]#cd .ssh[root@localhost1 .ssh]#ssh-copy-id -i id_dsa.pub root@192.168.116.20//查看一下[root@localhost2 ~]#cd .ssh[root@localhost2 .ssh]#lsauthorized_keys known_hosts[root@localhost2 .ssh]#cat authorized_keys ssh-dss AAAAB3NzaC1kc3MAAACBAI9yxdO7V/W/ATYiSoKz4MbWZDRpE902lBpH0i5dmghNwWAxqV0DRMjetyvUc+R466NdXmp7N32ARuj+wEMNZ73g3FdurzkhwRmGi8RhR9obYkL3cqS34dmQvAWAlYmNYfqIg8Z2nv9KLwCrsnKfJDevlgmjpyj+Bxzx0smpIq/TAAAAFQDUYT4psdnG+JAUJfUhTCBz5AivsQAAAIAVLo/baTi/Z/xDod4N+bLwDYylsGKyWUuB8pTsMz/IPBH6KWPMWB62H9cO4rXhX2VQsKQXFBv77gqhpqzCB0iqQvc1DOHNXIp33tRlOvLntTYR02jduFnMtw9XyKjpIRaQmON3JY97liYL9zqP4Dd2RwSbPvSAhCPgWWL6lEX7awAAAIB8ad42MTdKzRVhZ3wu6KBmvn0LmeiX0NO5WQcPoOfwSqH7hCbhV2Dy+BfM3OklL6I3HesTajtuyLy6UBL83ayrvl8AXO0y7NCPOuZCm59YYXF8SE7pQz7JZBFyA9jTm9Ba4W0rrwHo3x1OkYXFd5LQowO71k/KKuWGQMGssR8Uiw== root@localhost1

3.重新使用ssh远程登录服务端,会提示使用密钥验证登录(如果为密钥设置了密码,还需要输入密钥的密码)

补充:免交互登录

公钥文件设置了密码

服务端导入公钥文件后,建立ssh代理(此方式只在当前连接有效)

[root@localhost1 ~]#ssh-agent bash[root@localhost1 ~]#ssh-addEnter passphrase for /root/.ssh/id_dsa: Identity added: /root/.ssh/id_dsa (/root/.ssh/id_dsa)

公钥文件未设置密码(密码为空)

这种情况可以在密钥验证后直接登录

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。