Linux经常使用命令(5)--SSH访问远程服务器、SCP服务器间文件拷贝

1、使用"ssh"命令,登陆访问远程服务器算法

  Linux是一个支持多用户操做的系统,在同一时刻容许多个用户同时访问系统,共享系统提供的服务。那么用户如何从不一样的机器上访问同一台Linux服务器呢?此时就须要借助于SSH客户端,来进行用户登陆和访问系统。安全

  查看"man ssh"在线文档,"ssh"命令描述信息以下:服务器

  查看"ssh"在线文档可知,假设远程服务器ip地址为:192.168.100.36,远程用户名为:newbie,则访问远程服务器的命令以下:网络

ssh -l newbie 192.168.100.36

 

 2、基于服务器间密钥的方式,实现"ssh"远程免密码登陆ssh

  默认状况下,经过“ssh”客户端来访问远程服务器时,每次都要输入用户密码(在常常访问服务器时,此种体验让人很不爽)。实际上"ssh"能够实现免密码登陆,实现的最简单的方法是建立一个公钥/私钥对,以此来验证服务器的有效性,替代密码验证。
  注意:免密登陆也不是万能的。免密登陆时,从一台【主机A】的用户userA,使用【主机B】的用户userB来登陆到【主机B】,此时存在着严格的用户对应关系。基于密钥免密登录的实现步骤以下:工具

  一、在客户端【主机A】生成一对密钥(公钥/私钥) 加密

基于空口令生成一个新的ssh密钥,以实现无密码登陆,执行命令以下:

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

参数说明: -t 加密算法类型,这里是使用rsa算法 -P 指定私钥的密码,不须要能够不指定 -f 指定生成秘钥对保持的位置

  二、客户端【主机A】,使用"ssh-copy-id"命令,将客户端【主机A】的公钥,发送个服务端【主机B】spa

       注:通过ssh-copy-id后接收公钥的服务端会把公钥追加到服务端对应用户的$HOME/.ssh/authorized_keys文件中 .net

ssh-copy-id userB@serverB

  

  三、客户端【主机A】,使用“ssh”命令访问服务器端【主机B】,进行登陆操做code

ssh -l userB serverB

  四、服务端根据客户端的用户名和主机名查找对应的公钥,将一个随机的字符串用该公钥加密后发送给客户端

  五、客户端用本身的私钥进行解密收到的字符串,并将解密后的字符串发送给服务端

  六、服务端对比发送出去的和接收到的字符串是否相同,若是相同,则登陆成功。

 

3、设置“ServerAliveInterval”参数,保持SSH客户端的长连接

  用ssh链接服务器时,过段时间不用, 须要恢复一下断开的链接, 缘由是NAT防火墙喜欢对空闲的会话进行超时处理,以确保它们状态表的干净和内存的低占用率,由于 长时间保持链接, 会长期占用部分系统资源, 为了节省系统资源,NAT防火墙就会把长时间的ssh链接断掉;频繁重连ssh总归是有些麻烦,下边是我对部分ssh工具解决方法:
使用命令参数进行ssh链接时加一个参数 -o ServerAliveInterval=30 (客户端主动向服务端请求响应的间隔为30s)来保持活动状态。

ssh -l 登陆用户名 -o ServerAliveInterval=30  服务器地址

 

 4、服务器间,远程拷贝命"scp

  scp工具,是基于ssh远程安全登陆的,能够将主机A上的文件或目录,拷贝给主机B而且能够更名字,也能够将主机B上的文件或目录下载到主机A中,同时也支持修改文件名。

  一、远程拷贝文件

scp 本机文件 user@host:路径/ 
注:将bigdata1上的
/etc/profile文件拷贝到bigdata2的根目录下 scp /etc/profile root@bigdata2:/
注:将bigdata1上的
/etc/profile文件拷贝到bigdata2的根目录下,并更名为profile.txt scp /etc/profile root@bigdata2:/profile.txt

 

  二、远程拷贝目录

scp -r 本机目录 user@host:路径/ 

注:将bigdata1上的/bin目录拷贝到bigdata2的根目录下 
scp -r /bin root@bigdata1:/home/ (-r 表示递归)

 

  三、下载文件到本地

scp user@host:文件名 本地目录 

注:将bigdata2上的/profile下载到本地并更名为profile.txt 
scp root@bigdata2:/profile ./profile.txt

 

  四、下载目录到本地

scp -r user@host:文件名 本地目录 

注:将bigdata2上的/bin下载到本地并更名为bin.bak 
scp -r root@bigdata2:/home/bin ./bin.bak

 

转载说明:本篇博客的“第二节”、“第四节”转载自网络。 原文标题:SSH远程登陆和SSH免密码登陆 原文地址:https://blog.csdn.net/m0_37822234/article/details/82494556
相关文章
相关标签/搜索