服务器间访问不用密码的设置

经常在服务器程序(脚本)里面,或在命令行中,执行ssh,scp命令,会碰到要求密码的情况,很不方便!

如果在两台相互信任,其实步骤挺简单,假设要从主机1上执行,ssh,scp操作。

  • 主机1:host1    用户1:user1
  • 主机2:host2    用户2:user2

一:在主机1上执行下列操作:

1./home/user1/.ssh/ 目录下,执行:ssh-keygen –t id_rsa

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user1/.ssh/id_rsa):
/home/user1/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user1/.ssh/id_rsa.
Your public key has been saved in /home/user1/.ssh/id_rsa.pub.
The key fingerprint is:
12:a5:55:cc:1e:59:34:61:a2:41:ce:92:5a:a8:9d:ed [email protected]

2.一路默认回车,生成id_rsa.pub文件

3.cat id_rsa.pub >> authorized_keys

二:在主机2上执行下列操作:

1.拷贝主机1上的authorized_keys文件到/home/user2/.ssh/目录下。

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAwvAv1SKPIkO2ucdmuz13RkVvSuZRKg/FGllbje/a2fDG2AYSdSKQSqe3GO/40YzA3BnVwBEY+cOKbTj9gpVWLf7bi1jZBDokeO3TWdQnzLfOObA4+F3EunwruyqekLTkAEpmoM400ndqmV5VGi1uvRl8gFgVes6pGkZAorzPll7vCCX4DC1R9XK8/VmtLm7Z4egR/UkPoiA9t7u/K3tdjn28DhPSEWnV1ggZZ30DxB14Mtw0+ZjP5joTISFXVBVDxbuUiibuS+2TmjVM3i20Ep1LTfzwFwYBbSGbReRIdowGsCaFK9zs6WIY84SRWR/mvIJOZQhbU1N/dQSnHobICQ== [email protected]

2.更改目录访问权限:chmod 755 ~/.ssh/

三:最后在主机1上执行:

1. ssh [email protected]

2. scp [email protected]:/var/log/*.*   .

就不需要输入密码了。

NOTE:

首先ssh-keygen -t rsa命令生成了一个密钥和一个公钥, 而且密钥可以设置自己的密码。可以把密钥理解成一把钥匙, 公钥理解成这把钥匙对应的锁头,把锁头(公钥)放到想要控制的server上, 锁住server, 只有拥有钥匙(密钥)的人, 才能打开锁头,
进入server并控制。而对于拥有这把钥匙的人, 必需得知道钥匙本身的密码,才能使用这把钥匙 (除非这把钥匙没设置密码), 这样就可以防止钥匙被了配了(私钥被人复制)。当然, 这种例子只是方便理解罢了,拥有root密码的人当然是不会被锁住的, 而且不一定只有一把锁(公钥), 但如果任何一把锁, 被人用其对应的钥匙(私钥)打开了, server就可以被那个人控制了。

所以说, 只要你曾经知道server的root密码, 并将有root身份的公钥放到上面, 就可以用这个公钥对应的私钥"打开"server, 再以root的身分登录, 即使现在root密码已经更改!

如果想控制n个机器, 那就需要n对钥匙(密钥和公钥), ssh-keygen命令可以随意更改钥匙对的名字, 最好取容易识别的文件名,比如:

# ssh-keygen -t rsa

Generating public/private rsa key pair.

Enter file in which to save the key(/root/.ssh/id_rsa): /root/.ssh/id_rsa_192.168.10.1 

......

这样私钥和公钥的名字分别就是: 

id_rsa_192.168.10.1  和 id_rsa_192.168.10.1.pub 

然后将 id_rsa_192.168.0.1.pub 文件的内容, 追加到服务器的~/.ssh/authorized_keys文件中,

最后, 在本地用ssh命令的 -i 参数指定本地密钥, 并登录:

# ssh -i /root/.ssh/id_rsa_192.168.10.1 192.168.10.1

如果密钥设置了密码, 就用密钥的密码登录, 没设密码, 就直接登录进去了。scp也是一样。

服务器间访问不用密码的设置,布布扣,bubuko.com

时间: 2024-10-27 13:39:40

服务器间访问不用密码的设置的相关文章

在moss 服务器上访问自己的sharepoint 网站,输入用户名密码无效

环境:sharepoint 2007 ,windows server 2003 x64 sp2 该服务器部署了moss 2007 ,客户端访问正常,但在该服务器上访问moss的时候,不断提示需要输入用户名密码,并且输入无效. 根据微软知识库解释:当网站使用集成身份验证并具有映射到本机环回地址的名称时,将出现此问题. 解决办法: 方法 1:禁用环回检查 将 DisableStrictNameChecking 注册表项设置为 1. 有关具体操作方法的更多信息,请单击下面的文章编号,以查看 Micro

服务器无需密码互访设置

一.服务器配置 1.在每台服务器上都执行ssh-keygen -t rsa 生成密钥 [[email protected] .ssh]# ssh-keygen -t rsa [[email protected] .ssh]# ssh-keygen -r rsa [[email protected]  .ssh]# ssh-keygen -t rsa [[email protected]  .ssh]# ssh-keygen -t rsa Generating public/private rsa

多台Linux服务器SSH相互访问无需密码

摘录:http://www.linuxidc.com/Linux/2013-02/79156p2.htm 一.环境配置 1.系统:CentOS release 5.6  IP:192.168.4.200  主机名:JW01 2.系统:CentOS release 5.9  IP:192.168.4.244  主机名:JW02 3.系统:CentOS release 5.3  IP:192.168.4.232  主机名:KT01 4.系统:Red Hat  release 4  IP:192.16

请问不用IIS怎么在公网服务器上访问WinForm应用程序,注意不用IIS,请不会者

请问不用IIS怎么在公网服务器上访问WinForm应用程序,注意不用IIS,请不会者 详细描述:就是我在局域网上的浏览器,这个局域网是联网的,我怎么通过浏览器,直接访问,公网服务器上的WinForm应用程序,给出一个直接或者间接的访问思路也成! --------解决方案-------- 安装“Web远程管理”服务,用浏览器访问远程桌面 --------解决方案-------- 除了远程桌面,貌似只有下载到本地才能运行winform的程序了吧. --------解决方案-------- winfr

使用scp免密码服务器间传递文件

1.a服务器下运行命令  ssh-keygen -t rsa 2.三个回车 3.在用户的目录下 ~/.ssh/产生两个文件,id_rsa,id_rsa.pub 4.把a服务器下对应的文件拷贝到b服务器 并重命名为 authorized_keys scp /root/.ssh/id_rsa.pub [email protected]:/root/.ssh/authorized_keys scp 命令: scp命令说明 scp – 安全复制 (远程文件复制工具) 语法: scp [-1245BCpq

linux下不同服务器间数据传输(rcp,scp,rsync,ftp,sftp,lftp,wget,curl)

因为工作原因,需要经常在不同的服务器见进行文件传输,特别是大文件的传输,因此对linux下不同服务器间数据传输命令和工具进行了研究和总结.主要是rcp,scp,rsync,ftp,sftp,lftp,wget,curl. rcp rcp不是一种安全的的传输文件的方式,rcp通过rsh(rsh见下面)来执行远程命令,要使用rcp必须经过一些配置,现在rcp已经被scp取代了,常用scp来进行文件传输.要使用rcp,需要具备以下条件: (1)如果系统中有/etc/hosts 文件,应确保该文件包含要

linux下不同服务器间数据传输(rcp,scp,rsync,ftp,sftp,lftp,wget,curl)(zz)

linux下不同服务器间数据传输(rcp,scp,rsync,ftp,sftp,lftp,wget,curl) 分类: linux2011-10-10 13:21 8773人阅读 评论(1) 收藏 举报 服务器linuxftp服务器文档commandssh 目录(?)[+] 因为工作原因,需要经常在不同的服务器见进行文件传输,特别是大文件的传输,因此对linux下不同服务器间数据传输命令和工具进行了研究和总结.主要是rcp,scp,rsync,ftp,sftp,lftp,wget,curl. r

linux下不同服务器间数据传输(wget,scp)

一.wget是Linux下最常用的http/ftp文件下载工具1.wget断点续传,只需要加上-c参数即可,例如:代码:wget-chttp://www.abc.com/abc.zip-Oabc.zip2.当服务器上的文件比本地指定目录下的文件更新时才下载,-P指定目录,-N表示检查文件文件是否更新代码:wget-N-P/hom 一.wget是Linux下最常用的http/ftp文件下载工具1.wget断点续传,只需要加上-c参数即可,例如:代码: wget -c http://www.abc.

笔记01 登录、常用配置参数、Action访问Servlet API 和设置Action中对象的值、命名空间和乱码处理、Action中包含多个方法如何调用

Struts2登录 1. 需要注意:Struts2需要运行在JRE1.5及以上版本 2. 在web.xml配置文件中,配置StrutsPrepareAndExecuteFilter或FilterDispatcher 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 <filter>     <filter-name>struts2</filter-name>     <filter-class>org.apache.struts2.di