zoukankan      html  css  js  c++  java
  • ssh和scp详解

    一、SSH客户端使用

      使用ssh客户端远程登陆到指定的计算机:

    $ ssh {user}@{remote} -o IdentityFile=/home/id_rsa -o StrictHostKeyChecking=no
      user:远程机器上的用户名,如果不指定的话默认为当前用户;
      remote:远程机器的地址,可以是 IP/域名,或者是 后面会提到的别名;
      port:ssh Server **的端口,SSH服务器默认端口号是 22,不指定则使用默认端口号。

      在工作中,SSH服务器的端口号很有可能不是22,如果遇到这种情况就需要使用 -p 选项,指定正确的端口号,否则无法正常连接到服务器。

    1、免密码登陆

           ssh无密码登陆要使用公钥和私钥。linux下可以用ssh-keygen生成公钥/私钥对。

    (1)在客户端机器生成公钥/私钥对

    $ ssh-keygen -t rsa -P ''

          直接ssh-keygen然后三次回车就可以了。会在/home/root(用户) 下生成.ssh目录,.ssh下有id_rsa和id_rsa.pub。
           -P表示密码;-P  '':表示空密码,这种情况可以不使用-P参数。

    (2)上传公钥到服务器

      把客户端机器生成的id_rsa.pub公钥复制到服务器的 /home/root(用户)/.ssh/authorized_keys文件中。

    $ scp  .ssh/id_rsa.pub   hqs@192.168.2.77:/home/hqs/.ssh/id_rsa.pub
    # 把复制的id_rsa.pub添加到.ssh/authorized_keys文件
    $ cat id_rsa.pub >> .ssh/authorized_keys
    $ chmod 600 .ssh/authorized_keys        # authorized_keys的权限要为600

    (3)非对称加密算法

           使用 公钥 加密的数据,需要使用 私钥 解密;
           使用 私钥 加密的数据,需要使用 公钥 解密。

    2、配置别名

    (1)上传公钥到服务器(ssh-copy-id)

           执行 ssh-copy-id -p port user@remote

    (2) 配置别名

           配置别名可以让我们进一步偷懒,比如:ssh centos来替代上面这一长串命令,在客户端计算机 ~/.ssh/config 里面追加一下内容:

    Host centos
           HostName  服务器ip地址
           User  python
           Port  22

           保存后,可以使用ssh centos实现远程登陆,scp同样可以使用。

    3、使用rsa秘钥登陆

    $ ssh  {user}@remoteaddr  -o IdentityFile=/home/{user}/.ssh/id_rsa -o StrictHostKeyChecking=no

    二、SCP使用

      scp 就是 secure copy,是一个 Linux 下用来进行 远程拷贝文件 的命令。既可以将本地内容拷贝到远程计算机,也可以将远程计算机内容拷贝到本地。

    $ scp  用户名@ip:文件名或路径  用户名@ip:文件名或路径
           -r:若给出的源文件是目录文件,则scp将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名;
           -P:若远程SSH服务器的端口不是22,需要使用大写字母 -P 选项指定端口。
           -i identity_file: 从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。
    
    # 把本地当前目录下的 01.py 文件 复制到 远程 家目录下的 Desktop/01.py
    $ scp -P port 01.py user@remote:Desktop/01.py
    
    # 把远程 家目录下的 Desktop/01.py 文件 复制到 本地当前目录下的 01.py
    $ scp -P port user@remote:Desktop/01.py 01.py
    
    # 把当前目录下的 demo 文件夹 复制到 远程 家目录下的 Desktop
    $ scp -r demo user@remote:Desktop
    
    # 把远程 家目录下的 Desktop 复制到 当前目录下的 demo 文件夹
    $ scp -r user@remote:Desktop demo
    
    # 指定RSA秘钥
    # 下载数据
    $ scp  -i  ~/.ssh/id_rsa  -r root@remote_ip:/data/www/develop/develop_activity_task  /data/www/activity_task_bak
    
    # 上传数据
    $ [root@localhost fsp]# scp -i /home/id_rsa patch.zip fsp@172.28.0.2:/home/fsp/
    Authorized users only. All activities may be monitored and reported.
    patch.zip

      注意:

      scp 这个终端命令只能在 Linux 或者 UNIX 系统下使用;

      如果在windows系统中,可以安装putty,使用pscp命令行工具或者安装FileZilla使用FTP进行文件传输。

  • 相关阅读:
    poj 2411 Mondriaan's Dream 骨牌铺放 状压dp
    zoj 3471 Most Powerful (有向图)最大生成树 状压dp
    poj 2280 Islands and Bridges 哈密尔顿路 状压dp
    hdu 3001 Travelling 经过所有点(最多两次)的最短路径 三进制状压dp
    poj 3311 Hie with the Pie 经过所有点(可重)的最短路径 floyd + 状压dp
    poj 1185 炮兵阵地 状压dp
    poj 3254 Corn Fields 状压dp入门
    loj 6278 6279 数列分块入门 2 3
    VIM记事——大小写转换
    DKIM支持样本上传做检测的网站
  • 原文地址:https://www.cnblogs.com/xiugeng/p/10575240.html
Copyright © 2011-2022 走看看