目录
远程管理与ssh
ssh原理
使用ssh时,主要分为下面几步
- 用户使用ssh user@host命令对远程主机发起登陆请求;
- 远程主机将自己的公钥返回给请求主机;
- 请求主机使用公钥对用户输入的密码进行加密;
- 请求主机将加密后的密码发送给远程主机;
- 远程主机使用私钥对密码进行解密;
- 最后,远程主机判断解密后的密码是否与用户密码一致,一致同意登陆,否则反之。
基本使用
常用指令
1.登录远程ssh主机
ssh root(用户名)@192.168.28.30
//需要指定端口可加上-p22(默认22为ssh端口号)
2.让远程主机执行指定指令
ssh -p22 [email protected] ls -ha /etc
//让远程主机显示etc目录中的所有内容(包括权限所属)
3.查看已连接的主机
cat .ssh/known_hosts
常用参数
-1 强制使用ssh协议版本1
-2 强制使用ssh协议版本2
-4 强制使用IPv4地址
-6 强制使用IPv6地址
-A 开启认证代理连接转发功能
-a 关闭认证代理连接转发功能
-b 使用本机指定的地址作为对位连接的源IP地址
-C 请求压缩所有数据
-F 指定ssh指令的配置文件,默认的配置文件为“/etc/ssh/ssh_config”
-f 后台执行ssh指令
-g 允许远程主机连接本机的转发端口
-i 指定身份文件(即私钥文件)
-l 指定连接远程服务器的登录用户名
-N 不执行远程指令
-o 指定配置选项
-p 指定远程服务器上的端口
-q 静默模式,所有的警告和诊断信息被禁止输出
-X 开启X11转发功能
-x 关闭X11转发功能
-y 开启信任X11转发功能
通过scp命令远程管理文件
scp命令用户不同主机之间的文件复制,SSH协议保证了复制的安全性
举例
1.将本地文件复制给远程主机
scp -p22 -r -p /root/file [email protected]:/tmp
//将远程客户端tmp目录中的内容下载到本机root目录下的file文件夹
2.将远程主机文件下载到本地
scp -p22 -r -p [email protected]:/root/file /root
//将远程服务器root目录下file文件夹的内容下载到本机root目录
ssh自带的sftp功能
使用sftp在两台主机之前互相传递文件
使用了加密/解密技术,所以传输效率比普通的FTP要低,但安全性更高
使用方法
1.ssh连接远程主机
sftp -oPort=22 [用户名]@[远程主机ip]
//输入对应密码
//显示connected to [远程主机ip]
stfp>
2.基本命令
- 往远程主机上传文件:用put
- 从远程主机下载文件:用get
- 退出:exit/[ctrl]+D
例
sftp> put /etc/hosts /tmp //把本机/etc/host文件放到远程主机的/tmp目录
sftp> get /etc/hosts /root //从远程主机root目录取内容放到本机/etc/hosts中
sshd配置文件
sshd服务的配置信息保存在/etc/ssh/sshd_config文件中。运维人员一般会把保存着最主要配置信息的文件称为主配置文件,而配置文件中有许多以井号开头的注释行,要想让这些配置参数生效,需要在修改参数后再去掉前面的井号
sshd服务配置文件中包含的参数以及作用
参数 | 作用 |
---|---|
Port 22 | 默认的sshd服务端口 |
ListenAddress 0.0.0.0 | 设定sshd服务器监听的IP地址 |
Protocol 2 | SSH协议的版本号 |
HostKey /etc/ssh/ssh_host_key | SSH协议版本为1时,DES私钥存放的位置 |
HostKey /etc/ssh/ssh_host_rsa_key | SSH协议版本为2时,RSA私钥存放的位置 |
HostKey /etc/ssh/ssh_host_dsa_key | SSH协议版本为2时,DSA私钥存放的位置 |
PermitRootLogin yes | 设定是否允许root管理员直接登录 |
StrictModes yes | 当远程用户的私钥改变时直接拒绝连接 |
MaxAuthTries 6 | 最大密码尝试次数 |
MaxSessions 10 | 最大终端数 |
PasswordAuthentication yes | 是否允许密码验证 |
PermitEmptyPasswords no | 是否允许空密码登录(很不安全) |
安全密钥验证
-
在客户端主机中生成“密钥对”
[root@localhost ~]# ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Created directory '/root/.ssh'. //选择钥匙对存放的位置,不写则默认存放在/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:9+KE/GYBG6wjbCQ4o9j139nD9kkrL29bdAYd49kTvLo [email protected] The key's randomart image is: +---[RSA 2048]----+ | .+ | | .o*| | . . .++| |+ . o + o.| |o+ = . .S+. . +| |o . + +..o.. . o.| | . . oo.o=. o .| | .+=.BE.+ | | oo. OB. | +----[SHA256]-----+
-
把客户端主机中生成的公钥文件传送至远程主机
[root@localhost ~]# ssh-copy-id 192.168.28.30 /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub" /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys [email protected]'s password: Number of key(s) added: 1 Now try logging into the machine, with: "ssh '192.168.28.30'" and check to make sure that only the key(s) you wanted were added.
-
对服务器进行设置,使其只允许密钥验证,拒绝传统的口令验证方式。记得在修改配置文件后保存并重启sshd服务程序
[root@localhost ~]# vim /etc/ssh/sshd_config .................. 65 PasswordAuthentication no //此处65指的是第65行 ................... [root@localhost ~]#
-
在客户端尝试登录到服务器,此时无须输入密码也可成功登录
[root@localhost ~]# ssh 192.168.28.30 Last login: Fri Apr 19 17:12:37 2019 from 192.168.28.30
mobaxterm使用密钥登录
1.生成密钥
2.保存公钥私钥
3.上传公钥
4.测试无密码登录
注意保存公私钥时指定一个自己能找到的地方
第一步按下generate以后鼠标记得左右移动,不然没有进度
利用软件的上传功能将公钥上传到服务器相应文件夹中
在mobaxterm中开启服务器私钥使用并删除先前保存的密码
退出当前连接重新连接
success!!!
管理远程会话
1.screen基本命令
-S 创建会话窗口
-d 将指定会话进行离线处理
-x 一次性恢复所有的会话
-Is 显示当前已有的会话
-wipe 把目前无法使用的会话删除
2.命令使用方法
2.1 创建screen会话
screen -S windows1
2.2 暂时离开,保留screen
[ctrl]+a+d
2.3 恢复会话
screen -r windows1
//如果忘记了,或者当时没有指定会话名,可以执行:
screen -ls screen
会列出当前存在的会话列表
2.4 关闭会话
exit
3.会话共享(实例)
1.演示者执行 screen -S test 创建一个screen会话
2.观众执行screen -x test 与演示者同步。
4.实际应用
在日常的生产环境中,其实并不是必须先创建会话,然后再开始工作。可以直接使用screen命令执行要运行的命令,这样在命令中的-切操作也都会被记录下来,当命令执行结束后screen会话也会自动结束
[root@locaLhost ~]# screen ping -c 4 www.baidu.com
[screen is terminating]
//如果ping命令不结束,screen窗口也会一直在
标签:服务,主机,screen,会话,ssh,root,远程
From: https://www.cnblogs.com/yysjdys/p/17892714.html