SSH远程管理
Posted 还行少年
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SSH远程管理相关的知识,希望对你有一定的参考价值。
配置OpenSSH服务端
1.SSH服务及配置文件
在centos7中,OPENSSH服务器由openssh、openssh-server等软件包提供(默认已安装),并已将sshd添加为标准的系统服务。
sshd服务的配置文件默认位于/etc/ssh/sshd_config
[root@localhost ~]# rpm -qc openssh-server //查看配置文件
/etc/pam.d/sshd
/etc/ssh/sshd_config
/etc/sysconfig/sshd
2.服务监听选项
sshd服务使用的端口默认为TCP22端口,可修改,并且可以指定监听服务的IP地址,SSH协议的版本V2比V1的安全性要更好,禁用DNS反向解析可以提高服务器的响应速度
[root@localhost ~]# vi /etc/ssh/sshd_config //编辑ssh服务器配置,以下为默认配置
。。。
#Port 22 //监听端口
#ListenAddress 0.0.0.0 //监听地址
#ListenAddress :: //监听地址V6
#UseDNS yes //启用DNS反向解析
。。。
3.用户登录控制
关于sshd服务的用户登陆控制,通常应禁止root用户或密码为空的用户登录。另外,可以限制登陆验证的时间及最大重试次数,此外还可以只允许或禁止某些用户登录
[root@localhost ~]# vi /etc/ssh/sshd_config //编辑ssh服务器配置,以下为默认配置
。。。
#LoginGraceTime 2m //登陆验证时间
#PermitRootLogin yes //允许Root登录
#MaxAuthTries 6 //最大重试次数为6
#MaxSessions 10 //最大连接数为10
#PasswordAuthentication yes //开启密码验证机制
#PermitEmptyPasswords no //不允许空密码登录
AllowUsers root zhangsan lisi@192.168.30.4 //只允许这些用户登录,lisi只允许在指定主机远程登录
DenyUsers zhangsan //张三又在白名单,又在黑名单,以黑名单为优,禁止登录
。。。
4.登录验证方式
[root@localhost ~]# vi /etc/ssh/sshd_config //编辑ssh服务器配置,以下为默认配置
#PasswordAuthentication yes //开启密码验证机制
#PubkeyAuthentication yes //启用密钥对验证
AuthorizedKeysFile .ssh/authorized_keys //指定公钥库数据文件
4.1 密码验证
以服务器中本地系统用户的登录名称、密码进行认证。使用方式简便,但是较不安全
4.2 密钥对验证
使用方法
通常先在客户机中创建一对密钥文件(公钥,私钥),然后将公钥文件放到服务器的指定位置。远程登陆时,系统将使用公钥,私钥进行加密解密关联验证,最后登录成功
公钥和私钥的关系
公钥和私钥是成对生成的,互不相同,可以互相加密解密
不能根据一个密钥推算另一个密钥
公钥对外公开,私钥只有私钥的持有人知道
使用SSH客户端程序
1.ssh远程登录
远程登录到192.168.30.3
[root@localhost ~]# ssh 192.168.30.3 //远程到192.168.30.3
The authenticity of host '192.168.30.3 (192.168.30.3)' can't be established.
ECDSA key fingerprint is SHA256:396BF852ITFX9y8B/HTvPAeICxxYzk4Wc7o8nWgyIQ4.
ECDSA key fingerprint is MD5:75:63:23:ba:73:cc:5d:4d:e6:2a:6a:9b:c3:71:43:a7.
Are you sure you want to continue connecting (yes/no)? yes //确定连接
Warning: Permanently added '192.168.30.3' (ECDSA) to the list of known hosts.
root@192.168.30.3's password: //输入密码
Last login: Tue May 25 15:18:00 2021 from 192.168.30.254
[root@localhost ~]#ifconfig ens33 | grep "inet " //确认当前主机地址
inet 192.168.30.3 netmask 255.255.255.0 broadcast 192.168.30.255
2.scp远程复制
将远程主机中的/etc/passwd文件复制到本机,并将本机的/etc/cups目录复制到远程主机
[root@localhost ~]# scp root@192.168.30.3:/etc/passwd /root/pwd3.txt //将远程主机中的/etc/passwd文件复制到本机
root@192.168.30.3's password:
passwd 100% 2310 1.1MB/s 00:00
[root@localhost ~]# scp -rp /etc/cups/ root@192.168.30.3:/tmp //将本机的/etc/cups目录复制到远程主机
root@192.168.30.3's password:
cups-browsed.conf 100% 1029 54.0KB/s 00:00
classes.conf 100% 0 0.0KB/s 00:00
client.conf 100% 0 0.0KB/s 00:00
cups-files.conf 100% 3091 2.6MB/s 00:00
[root@localhost ~]#
3.sftp安全FTP
通过sftp命令可以SSH安全连接与远程主机上传、下载文件,采用了与FTP类似的登录过程和交互式环境
[root@localhost ~]# sftp 192.168.30.3 //建立连接
root@192.168.30.3's password: //输入密码
Connected to 192.168.30.3.
sftp> ls //查看192.168.30.3目录下文件
anaconda-ks.cfg initial-setup-ks.cfg 下载 公共 图片
文档 桌面 模板 视频 音乐
sftp> lls //查看本机目录下文件
anaconda-ks.cfg initial-setup-ks.cfg pwd3.txt 公共 模板 视频 图片 文档 下载 音乐 桌面
sftp> get /etc/passwd //下载文件
Fetching /etc/passwd to passwd
/etc/passwd 100% 2310 1.8MB/s 00:00
sftp> put /root/passwd //上传文件
Uploading /root/passwd to /root/passwd
/root/passwd 100% 2310 2.5MB/s 00:00
案例
1.修改监听端口,禁止root登录,禁用DNS反向解析,测试最大登录次数
[root@localhost ~]# vi /etc/ssh/sshd_config //编辑ssh服务器配置
。。。
Port 222 //监听端口222
UseDNS no //禁用用DNS反向解析
PermitRootLogin no //禁止Root登录
MaxAuthTries 6 //最大重试次数为6
。。。
[root@localhost ~]# systemctl reload sshd //重载服务
[root@localhost ~]# ssh root@192.168.30.3 //默认端口登录被拒绝
ssh: connect to host 192.168.30.3 port 22: Connection refused
[root@localhost ~]# ssh root@192.168.30.3 -p 222 //以root用户指定端口登录,尝试三次后失败
root@192.168.30.3's password:
Permission denied, please try again.
root@192.168.30.3's password:
Permission denied, please try again.
root@192.168.30.3's password:
Authentication failed.
[root@localhost ~]# ssh -o NumberOfPasswordPrompts=10 root@192.168.30.3 -p 222 //测试最大重试次数为6次
root@192.168.30.3's password:
Permission denied, please try again.
root@192.168.30.3's password:
Permission denied, please try again.
root@192.168.30.3's password:
Permission denied, please try again.
root@192.168.30.3's password:
Permission denied, please try again.
root@192.168.30.3's password:
Permission denied, please try again.
root@192.168.30.3's password:
Received disconnect from 192.168.30.3 port 222:2: Too many authentication failures
Authentication failed.
[root@localhost ~]#
[root@localhost ~]# ssh zhangsan@192.168.30.3 -p 222 //以zhangsan登录,成功
zhangsan@192.168.30.3's password:
[zhangsan@localhost ~]$
2.实现免密码登录
[root@localhost ~]# ssh-keygen -t rsa //创建算法为RSA的密钥对
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): //指定私钥的位置
Enter passphrase (empty for no passphrase): //设置私钥短语
Enter same passphrase again: //确认设置的短语
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:OEQROicqU1LM0vqQX5byt4iBloSP5fzVyWb5Xog7r2U root@l
The key's randomart image is:
+---[RSA 2048]----+
| +. +o |
|..+ o |
|o+. +.o |
|=+o.+= . |
|+@o= ooSo |
|o=B . o.B. . |
|. + + +..E . |
| . o . .+.. |
| o=o |
+----[SHA256]-----+
[root@localhost ~]# ssh-copy-id root@192.168.30.3 //上传到服务器的指定位置
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be instal
/usr/bin/ssh-copy-id: INFO: attempting to log in with the
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be install
root@192.168.30.3's password: //输入密码
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'root@192.
and check to make sure that only the key(s) you wanted we
[root@localhost ~]# ssh 192.168.30.3 //验证,无需密码
Last login: Tue May 25 16:43:25 2021 from 192.168.30.254
[root@localhost ~]#
以上是关于SSH远程管理的主要内容,如果未能解决你的问题,请参考以下文章