Linux SSH免密码登录与拷贝文件(SCP)- 亲测

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/listener51/article/details/53045788

参考网址1:http://blog.csdn.net/xyang81/article/details/51477925

参考网址2http://blog.itpub.net/29500582/viewspace-1251139/

参考网址3http://blog.csdn.net/huang_xw/article/details/8675132

参考网址4http://www.2cto.com/os/201307/231392.html


1、方法:

在工作当中经常会登录远程服务器安装软件、部署应用或者拷贝文件到远程服务器上,都会提示输入密码才能完成相关的操作。工作中如果要频繁登录服务器和拷贝文件的情况下,经常输入密码难免会觉得麻烦,且效率低下。而且在持续集成的场景下,自动部署应用时是没有人工干预的,这种情况如果要输入密码才能拷贝文件至远程服务器,就不能实现自动部署的功能了。下面以A服务器与B服务器双向实现免密码登录和拷贝文件为例,介绍相关的配置。 

A服务器地址:192.168.1.200,下面简称A 
B服务器地址:192.168.1.201,下面简称B

1、在A生成密钥对

ssh-keygen -t rsa -P ""

执行上述命令,一路回车,会在当前登录用户的home目录下的.ssh目录下生成id_rsa和id_rsa.pub两个文件,分别代表密钥对的私钥和公钥,如下图所示: 

rsa密钥对

2、拷贝A的公钥(id_rsa.pub)到B

这里拷贝到B的root用户home目录下为例:

scp /root/.ssh/id_rsa.pub root@192.168.1.200:/root

3、登录B

拷贝A的id_rsa.pub内容到.ssh目录下的authorized_keys文件中

cd /root
cat id_rsa.pub >> .ssh/authorized_keys

4、此时在A中用SSH登录B或向B拷贝文件,将不需要密码

ssh [email protected]
scp abc.txt [email protected]:/root

实现B免密码登录A,操作方式是一样的,在B中用ssh-keygen生成ssh密钥对,将公钥拷贝到A中,A将B的公钥拷贝到.ssh目录下的authorized_keys文件中即可。

2、可能碰到的问题

     一、B机器上 ~/.ssh/authorized_keys 此路径不仅目录.ssh (.ssh 是系统隐藏文件,linux下查看他用 ls -a )不存在,authorized_keys也不存在。那么就在~/ 目录下新建一个.ssh目录: 命令是 mkdir ~/.ssh   。 新建完.ssh目录,请使用 cd ~/.ssh 命令到.ssh目录,接着使用 touch authorized_keys 命令新建一个名为authorized_keys的文件。

      如果想要按1、方法: 配置过后,希望ssh公钥生效需满足至少下面两个条件:

1) .ssh目录的权限必须是700 
2) .ssh/authorized_keys文件权限必须是600

   配置过在服务器上,进入当前用户根目录下的隐藏目录.ssh命令:

         cd ~/.ssh

        通过ls -a  命令观察到。



附带 10个ssh 简单命令选项 地址:https://linux.cn/article-2933-1.html



   




A服务器地址:192.168.1.200,下面简称A 
B服务器地址:192.168.1.201,下面简称B

1、在A生成密钥对

ssh-keygen -t rsa -P ""

执行上述命令,一路回车,会在当前登录用户的home目录下的.ssh目录下生成id_rsa和id_rsa.pub两个文件,分别代表密钥对的私钥和公钥,如下图所示: 

rsa密钥对

2、拷贝A的公钥(id_rsa.pub)到B

这里拷贝到B的root用户home目录下为例:

scp /root/.ssh/id_rsa.pub root@192.168.1.200:/root

3、登录B

拷贝A的id_rsa.pub内容到.ssh目录下的authorized_keys文件中

cd /root
cat id_rsa.pub >> .ssh/authorized_keys

4、此时在A中用SSH登录B或向B拷贝文件,将不需要密码

ssh [email protected]
scp abc.txt [email protected]:/root

实现B免密码登录A,操作方式是一样的,在B中用ssh-keygen生成ssh密钥对,将公钥拷贝到A中,A将B的公钥拷贝到.ssh目录下的authorized_keys文件中即可。

2、可能碰到的问题

     一、B机器上 ~/.ssh/authorized_keys 此路径不仅目录.ssh (.ssh 是系统隐藏文件,linux下查看他用 ls -a )不存在,authorized_keys也不存在。那么就在~/ 目录下新建一个.ssh目录: 命令是 mkdir ~/.ssh   。 新建完.ssh目录,请使用 cd ~/.ssh 命令到.ssh目录,接着使用 touch authorized_keys 命令新建一个名为authorized_keys的文件。

      如果想要按1、方法: 配置过后,希望ssh公钥生效需满足至少下面两个条件:

1) .ssh目录的权限必须是700 
2) .ssh/authorized_keys文件权限必须是600

   配置过在服务器上,进入当前用户根目录下的隐藏目录.ssh命令:

         cd ~/.ssh

        通过ls -a  命令观察到。



附带 10个ssh 简单命令选项 地址:https://linux.cn/article-2933-1.html



   



猜你喜欢

转载自blog.csdn.net/listener51/article/details/53045788