SSH免密码登录和Git免密操作

SSH免密码登录和Git免密操作

每次打完包后都需要把包传到对应的服务器上从而让测试人员下载安装,但是每次ssh或scp时都需要重新输入密码;使用git代码托管平台只要修改了密码就需要输入密码。本文主要讲述的就是免密码登录到远程服务器的实现步骤和Git免密操作,还有一个常用命令scp

SSH的免密码登录

  1. 在客户端生成一对密钥(公钥/私钥)

    在终端中输入以下命令:
    ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
    参数说明:

    • -t 加密算法类型,这里是使用rsa算法
    • -P 指定私钥的密码,不需要可以不指定
    • -f 指定生成秘钥的位置路径
    • 该命令直接会在~/.ssh/中生成id_rsaid_rsa.pub即rsa的私钥和公钥,也可以通过ssh-keygen -t rsa生成到当前目录中,然后拖到~/.ssh/中。如果在.ssh文件夹中已存在id_rsaid_rsa.pub文件此步骤可以省略。
  2. id_isa.pub里面的内容复制到服务器的.ssh/authorized_keys中。

    ssh root@xxxx

    cd .ssh

    编辑authorized_keys(如果没有.ssh文件夹或authorized_keys文件需要创建),把id_isa.pub中的内容复制到该文件中。

    vim authorized_keys

  3. 最后再用ssh会让输一次密码,之后就不再需要输入密码了。

Git免密操作

Git免密操作本质上也是SSH免密操作。因为大部分的git代码托管平台都支持SSH,如果我们配置SSH秘钥后我们也不用再输入密码。拿gitHub来举例:

在setting中:

ssh-keygen -t rsa生成的公钥内容放在下图中

这样之后只要是使用当前机器从gitHubclone代码时,即使更改了密码也不用再输入密码了。

SCP命令

远程服务器文件和本地文件的交互大部分使用scp命令。

  • 把本地文件拷贝到远程
    scp 本地文件 user@host:路径/

    例:将桌面的文件test.txt拷贝到远程服务器根目录下

    scp test.txt root@172.19.0.1:/

    将该文件拷贝到远程服务器根目录并改名为test1.txt:

    scp test.txt root@172.19.0.1:/test1.txt

    文件地址可以是相对地址也可以是绝对地址。

  • 把本地目录拷贝到远程
    scp -r 本地目录 user@host:路径/

    例:将桌面的group文件夹拷贝到远程服务器的根目录下:

    scp -r group root@172.19.0.1:/home/

    -r 表示递归文件夹中所有文件。

  • 拷贝远程文件到本地
    scp user@host:文件名 本地路径

    例:拷贝远程服务器文件test1.txt拷贝到桌面并改名为test.txt

    scp root@172.19.0.1:/test1.txt ./test.txt

  • 拷贝远程目录到本地
    scp -r user@host:文件名 本地路径

    例:拷贝远程服务器目录到本地

    scp -r root@172.19.0.1:/home/group ./group

文章若有不对地方,欢迎批评指正

posted @ 2019-07-24 14:41  Code.Rookie  阅读(2477)  评论(0编辑  收藏  举报