linux -- 学习笔记ssh

ssh (secure shell) 是一种以 安全方式 提供 远程登陆 的 协议

在此之前, 一般使用的是 FTP 或 Telnet 来进行远程登陆

FTP与Telnet 以明文的方式, 在网络中发送账户密码和数据, 很不安全

因此, 首选使用ssh协议来远程登陆linux系统

 

安装sshd服务程序

sshd是基于SSH协议开发的远程登陆服务程序

sshd提供两种安全验证方法

1.基于口令 -- 账户密码

2.基于密钥 -- 更安全的方法

在rhel7中已默认安装了sshd服务程序, 如果没安装可自行安装

不确定有没有安装的话, 也可使用 : yum list installed | grep ssh 查看

sshd服务命令格式为: ssh [参数] 主机ip

 

口令验证登陆:

如下约定: 主机1为本地主机, 主机2为远程主机

不指定远程账户登陆:

ssh -p 22 192.168.43.12

我使用主机1的jack账户远程主机2

而根据提示,要求输入主机2 jack账户 的密码, 但是主机2上并不没有jack账户

因此,不指定远程账户登陆时, 你使用哪个账户名远程, 要求对方有相同的账户名才行

 

指定远程账户登陆:

ssh -p 22 sun@192.168.43.12

我使用主机1的jack账户远程主机2时, 指定使用主机2的sun账户登陆

所以只要正确输入主机2的 sun账户的密码就可以成功登陆

 

禁止root用户远程登陆:

root权限最高, 禁止root登陆可降低风险

此时就需要修改主机2的sshd服务配置文件 -- /etc/ssh/sshd_config

添加一行 PermitRootLogin no -- 表示不允许root登陆

重启sshd服务程序: systemctl restart sshd

ssh -p 22 root@192.168.43.51 登陆不上, 不影响其它账户登陆

 

密钥验证登陆:

在实际生产中使用口令验证的方式, 是有可能被暴力破解, 存在一定的风险

可以给主机2的sshd服务程序配置密钥验证, 使sshd服务更安全

 

step1: 在主机1上使用ssh-keygen命令, 生成本地 "密钥对" (包含公钥与私钥)

           随后三次确定即可, 会在~/.ssh/ 下面生成 id_rsa 和 id_rsa.pub两个文件

           

step2 : 在主机1上再次使用命令, 将公钥传送至主机2

           # ssh-copy-id 主机2的ip

            输入yes, 然后再入主机2的对应账户的密码 (比如账户: sun)

            

             执行完以后, 主机1在远程主机2时, 不再需要密码 (当然仅限于sun这个账户)

step3 : 修改主机2的ssh配置文件

             如下将PasswordAuthentication 改为no  -- 限制所有口令验证

             

             这样就只有主机1可免密登陆主机2 -- 仅可远程主机2的sun账户

             最终, 只有主机1的jack账户与root账户可免密远程登陆主机2的sun帐户

             为什么只有主机1的jack与root可以呢?

             可能是因为使用jack生成的密钥时, 存放在jack家目录中的, 上传公钥时, 也是使用的jack账户

 

远程传输命令

远程登陆上以后, 可以上传文件, 也可以下载文件

scp是一个基于ssh协议, 在网络间安全传输数据的命令, 它传输的所有数据都将进行加密

scp能使用的前提是可远程登陆, 即需要像上面一样, 先作好远程配置

传输文件时需要以绝对路径的形式, 如果传输文件夹, 则需要使用参数 -r (表示递归)

 

上传: scp [参数] 本地目录  远程ip:目录

事先配置好远程, 直接使用scp就可以传输文件了

/home/sun是 主机2 用户sun的主目录(权限问题,只能上传到用户家目录

 

下载: scp [参数] 远程ip:目录 本地目录  -- 和上传一样, 只是 交换 这两个的位置

       注: 使用scp, 不是登陆远程, 只是scp命令, 不操作远程主机

 

       同样由于权限问题, 只能下载文件到相应家目录

       

 

不间断会话

如果在执行任务时, 突然断网, 或者关闭窗口, 则正在执行的任务, 就只有中断

如果是正在远程控制某台主机, 则会失去对其控制

screen服务程序可以解决这样的问题 (即将任务不丢失)

screen 是一个能够将会话延续的服务程序

screen以用户为单位, 即各用户创建的screen会话是独立

安装screen服务程序:

       yum install screen

 创建screen会话

       screen -S 会话名  它会创建一个新窗口, 这个窗口的名称就是会话名

       这个窗口可以关闭, 但是它会进入后台, 在后台保持着

       然后, 根据会话名, 可以恢复这个窗口, 即 任务不丢失

       

        

        创建的新窗口如上所示, 没有任何内容, 现在就可以在这个新窗口中执行任务了(和平常执行任务一样)

        这个窗口仅仅是 拥有进入后台的功能

        创建会话窗口, 也可以直接使用 screen + 命令, 比如: # screen ssh sun@192.168.43.12

        但是会话名称就不好记, 虽然效果一样, 恢复会话的不一定能分清楚是哪个会话

恢复screen窗口

      screen -r 会话名

      发生极端情况, 断网, 关闭窗口, 等情况, 我们可以根据会话名称将其恢复过来, 继续任务

      如果不记得会话名称, 则可以使用screen -ls 查看

      

       

       回车就可以恢复会话

 

远程会话共享 

远程会话共享, 如果主机A 和 主机B 都远程到同一台ssh主机上

则主机A, 主机B 可共享ssh主机上的screen会话

比如主机A远程上ssh主机, 然后使用screen -X share 创建会话share

然后主机B再远程上同一个ssh主机, 那么主机B 可以直接使用及关闭share会话

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值