zoukankan      html  css  js  c++  java
  • ssh 免密码远程登录

    背景:

    公司有两台服务器A与B,经常会碰到代码中的配置文件不一致的情况...............,为了反面让两台服务器配置统一,所以需要写个shell脚本,用到的linux命令主要是scp

    1、在A上生成ssh的私钥和公钥【生成的目录在当当前目录下的.ssh目录下,.ssh 是隐藏文件】

    ssh-keygen -t rsa ##需要3次回车
    ssh-keygen -t rsa -P ##仅一次回车

    2、把A的公钥内容传到B的用户目录的.ssh文件夹下的authorized_keys文件中

    scp ~/.ssh/id_rsa.pub user@B_host_or_ip:~/.ssh/authorized_keys  ##希望每次自动登录用什么用户,这里的B_user就用什么帐号,因为默认会考到这个帐号下.ssh中

    ps:一定要把内容放到authorized_keys文件里,如果这个文件已经存在,那就追加到后面即可,不要覆盖了。

    3、A再用ssh进行操作时就不需要输入密码了

    ssh B_user@B_host_or_ip  ##直接登录成功

     

    scp脚本如下:

    #!/bin/sh
    path="/home/work/flight/order"
    filename="conf"
    ip="ip"

    cd $path && mv conf conf_bak
    echo "---生成备份文件conf_bak-----"
    #scp -r $path/$filename tester@$ip:$path/

    scp -r tester@$ip:$path/$filename $path/

    echo "---------拷贝完毕---------------"

    另外说下scp和rsync的区别

    1、scp和ssh是一套,用来Linux 2台服务器的文件传输。和ssh一样的安全传输协议,所以使用scp命令进行服务器间的文件复制不用手动输入密码,scp就是安全copy的意思

    2、Rsync 和scp相比,它可以只备份有差异的文件,减少了不少时间,另外也支持ssh

    rsync -avH [ssh] /path/to/source user@des:/path/to/local ##本地同步到远程,推
    rsync -avH [ssh] user@des:/path/to/source /path/to/local ##远程同步到本地,拉

  • 相关阅读:
    数据访问层之Repository
    IIS执行原理
    异常分析
    Logger
    JSTL
    Kubernetes
    NET Core WordPress
    net平台的rabbitmq
    MySQL can’t specify target table for update in FROM clause
    EqualsBuilder和HashCodeBuilder
  • 原文地址:https://www.cnblogs.com/chenya/p/7212210.html
Copyright © 2011-2022 走看看