SSH免密码登录和Git免密操作
每次打完包后都需要把包传到对应的服务器上从而让测试人员下载安装,但是每次ssh或scp时都需要重新输入密码;使用git代码托管平台只要修改了密码就需要输入密码。本文主要讲述的就是免密码登录到远程服务器的实现步骤和Git免密操作,还有一个常用命令scp
。
SSH的免密码登录
-
在客户端生成一对密钥(公钥/私钥)
在终端中输入以下命令:
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
参数说明:- -t 加密算法类型,这里是使用rsa算法
- -P 指定私钥的密码,不需要可以不指定
- -f 指定生成秘钥的位置路径
- 该命令直接会在
~/.ssh/
中生成id_rsa
和id_rsa.pub
即rsa的私钥和公钥,也可以通过ssh-keygen -t rsa
生成到当前目录中,然后拖到~/.ssh/
中。如果在.ssh
文件夹中已存在id_rsa
和id_rsa.pub
文件此步骤可以省略。
-
将
id_isa.pub
里面的内容复制到服务器的.ssh/authorized_keys
中。ssh root@xxxx
cd .ssh
编辑authorized_keys
(如果没有.ssh
文件夹或authorized_keys
文件需要创建),把id_isa.pub
中的内容复制到该文件中。vim authorized_keys
最后再用ssh会让输一次密码,之后就不再需要输入密码了。
Git免密操作
Git免密操作本质上也是SSH免密操作。因为大部分的git代码托管平台都支持SSH,如果我们配置SSH秘钥后我们也不用再输入密码。拿gitHub来举例:
在setting中:
把
ssh-keygen -t rsa
生成的公钥内容放在下图中这样之后只要是使用当前机器从
gitHub
中clone
代码时,即使更改了密码也不用再输入密码了。
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
文章若有不对地方,欢迎批评指正