工作中遇到的问题之linux设置互信访问

最近在做一个文档同步的功能,选用的是scp功能进行远程文件的传输
大家都知道scp命令是linux下常用的远程文件传输命令,现在工作中需要进行scp命令进行传输,正常情况下scp使用22端口进行通信,但是需求为了安全起见选用了其他端口进行通信,下面举例介绍一下具体的做法。
首先,需求是通过1000端口从服务器A将文件拷贝到服务器B。而且不要输入用户名和密码。
首先配置服务器A和B实现1000端口通信。
服务器A IP:172.16.10.10
服务器B IP:172.16.10.20
修改/etc/ssh/sshd_config配置
命令如下:

vi /etc/ssh/sshd_config

找到port字段,将注释’#’号去掉,并修改22为1000.
服务器A和B都要修改,重启ssh服务,centos使用

service sshd restart

最后检查防火墙是否开启,如果开启,请放开1000端口
下面配置互信访问:
在服务器A中执行如下命令:

ssh-keygen

一路enter键
设置完之后进入ssh目录下

cd ~/.ssh/

查看到有两个文件:id_ras和id_rsa.pub
这两个文件一个是私钥,一个是公钥,当然pub就是public的意思,是公钥。
打开文件id_rsa.pub

vi id_rsa.pub

复制文件内容
进入服务器B

touch authorized_keys 
vi authorized_keys 

将复制的文件内容复制到authorized_keys 中
这里有一个坑,要设置authorized_keys 的权限为744,互信会生效。
接下来,使用如下命令实现免登录。

ssh 172.16.10.20 -p 1000

但是不想输入后面的-p 1000
请在~/.ssh/目录下创建config文件

touch config
vi config

将下面的内容粘贴进去

Host B
    HostName 172.16.10.20
    User root
    Port 1000

接下来再A上输入以下命令就可以直接连接到B上了。ps:这个文件可以配置多台主机。

ssh B

Ok,整个流程大概是这样子的了,如果需要从B访问A将上述方法修改一下就好了。

你可能感兴趣的:(工作经验)