zoukankan      html  css  js  c++  java
  • Linux常用命令(5)--SSH访问远程服务器、SCP服务器间文件拷贝

    一、使用"ssh"命令,登录访问远程服务器

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

      查看"man ssh"在线文档,"ssh"命令描述信息如下:

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

    ssh -l newbie 192.168.100.36

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

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

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

    基于空口令生成一个新的ssh密钥,以实现无密码登录,执行命令如下:
    
    ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

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

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

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

    ssh-copy-id userB@serverB

    #注:执行此命令时,需要输入userB的登陆密码。

      

      3、客户端【主机A】,使用“ssh”命令访问服务器端【主机B】,进行登录操作

    ssh -l userB serverB

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

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

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

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

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

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

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

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

      1、远程拷贝文件

    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

      2、远程拷贝目录

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

      3、下载文件到本地

    scp user@host:文件名 本地目录 
    
    注:将bigdata2上的/profile下载到本地并改名为profile.txt 
    scp root@bigdata2:/profile ./profile.txt

      4、下载目录到本地

    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
  • 相关阅读:
    scrapy 常用代码
    pycahrm 基础设置
    pycahrm 激活
    pycharm 常用快捷键
    platform 系统是windows还是liunx
    (14)awk布尔值、比较和逻辑运算
    (13)gawk支持的正则表达式
    (12)awk数据类型和字面量
    (11)细说awk中的变量和变量赋值
    (10)print、printf、sprintf和重定向
  • 原文地址:https://www.cnblogs.com/newbie27/p/11180311.html
Copyright © 2011-2022 走看看