【转载】SSH login without password 免密登陆

Your aim

You want to use Linux and OpenSSH to automate your tasks. Therefore you need an automatic login from host A / user a to Host B / user b. You don‘t want to enter any passwords, because you want to call ssh from a within a shell script.

How to do it

First log in on A as user a and generate a pair of authentication keys. Do not enter a passphrase:

[email protected]:~> ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/a/.ssh/id_rsa):
Created directory ‘/home/a/.ssh‘.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/a/.ssh/id_rsa.
Your public key has been saved in /home/a/.ssh/id_rsa.pub.
The key fingerprint is:
3e:4f:05:79:3a:9f:96:7c:3b:ad:e9:58:37:bc:37:e4 [email protected]

Now use ssh to create a directory ~/.ssh as user b on B. (The directory may already exist, which is fine):

[email protected]:~> ssh [email protected] mkdir -p .ssh
[email protected]‘s password:

Finally append a‘s new public key to [email protected]:.ssh/authorized_keys and enter b‘s password one last time:

[email protected]:~> cat .ssh/id_rsa.pub | ssh [email protected] ‘cat >> .ssh/authorized_keys‘
[email protected]‘s password:

From now on you can log into B as b from A as a without password:

[email protected]:~> ssh [email protected]

A note from one of our readers: Depending on your version of SSH you might also have to do the following changes:

  • Put the public key in .ssh/authorized_keys2
  • Change the permissions of .ssh to 700
  • Change the permissions of .ssh/authorized_keys2 to 640
时间: 2024-10-06 19:07:04

【转载】SSH login without password 免密登陆的相关文章

SSH+RSA实现远程免密登陆

知识部分简述:SSH是一种安全通道协议,主要用来实现字符界面的远程登陆.远程复制等功能.SSH协议对通信双方的数据传输进行了加密处理,其中包括用户登陆是输入的用户口令.SSH和TELNET.RSH等提供了更好的安全性.OpenSSH是实现SSH远程登陆的开源软件项目,适用于Linux.UNIX系统,其官网地址为http://www.openssh.com.RSA加密算法是一种非对称加密算法.对极大整数做因数分解的难度决定了RSA算法的可靠性.换言之,对一极大整数做因数分解愈困难,RSA算法愈可靠

ssh免密登陆

ssh无密码登录要使用公钥与私钥.linux下可以用用ssh-keygen生成公钥/私钥对,下面我以CentOS为例. 系统:CentOS7主机:A(192.168.66.100):B(192.168.66.110)为方面,用户都为root 1.在A下生成公钥/私钥对命令:    ssh-keygen -t rsa -P ''-P表示密码,-P '' 就表示空密码,也可以不用-P参数,这样就要三车回车,用-P就一次回车.它在/root下生成.ssh目录,其他用户的话在对应的家目录下(/home/

linux上如何设置ssh免密登陆

一.linux上ssh链接 1.功能说明 scp就是security copy,用于将文件或者目录从一个Linux系统拷贝到另一个Linux系统下.scp传输数据用的是SSH协议,保证了数据传输的安全,其格式如下: scp 远程用户名@IP地址:文件的绝对路径 本地Linux系统路径 scp 本地Linux系统文件路径 远程用户名@IP地址:远程系统文件绝对路径名 scp使用第一种格式是将远程Linux系统上的某个文件或者目录拷贝到本地Linux系统上来,使用第二种是将本地的某个文件或者目录拷贝

shell脚本配置ssh免密登陆

通过shell脚本配置免密登陆,分为两个脚本,一个是配置文件config.env,一个是正式脚本sshkey.sh. # config.envexport HOST_USER=(root) export PASSWD=(a) export SSH_HOST=(192.168.165.15 192.168.165.16 192.168.165.165) 以上congfig.env文件中,SSH_HOST参数可配置多个IP,可配置不同的用户 sshkey.sh脚本内容大致如下: 在本地用rsa加密方

SSH之免密登陆

又来了,上头让小轩我在服务器中写一个Shell脚本,主要用来在机器B中定时备份机器A中的一些文件.那么,小轩是怎么想的呢? 在小轩的知识库里,现在有scp和ssh两个玩具.别的还真没有其他什么东西了.那就想直接用scp去远程复制好了,但是scp复制的时候还要输入密码.那就搞搞让使用scp的时候不用输入密码好了. 以下进入正文 忽略ssh安装scp安装过程.默认认为当前机器与远程机器含有完整的ssh,scp功能 首先在机器B中使用ssh-keygen -t rsa 命令 (想来玩git的童鞋应该知

ssh免密登陆权限问题

问题: 添加了authorized_keys还是不能免密登陆. 思路: 检查端口是否开放,是否允许root用户登录,尝试重启ssh服务... 最有可能的还是权限问题,出现Permission denied...... 下面两个目录的所有权必须是user,所属组也应该是user,权限必须为700 \home\user \home\user.ssh 下面公钥文件的所有权必须是user,所属组也应该是user,权限必须为644 \home\user.ssh\authorized_keys 保证每个目录

解决Centos6.4集群配置ssh免密登陆仍然需要输入密码问题

遇到的问题展示:   Ssh免密登陆配置成功之后仍然需要输入密码,找了很多方法,最后已解决,现把解决办法的详细过程记录下来,希望对你有帮助...       解决办法: 一.准备工作 1.安装ssh服务 执行rpm -qa | grep ssh 若无返回ssh服务,则需要执行下列语句进行安装 sudo yum install openssh-clients sudo yum install openssh-server 2.打开本机的ssh配置文件   删除以下内容每行开头的注释"#"

ssh免密登陆(简单快捷)

介绍免密登陆配合下边这张图可以了解下过程: 假设现在A要通过免密登陆B 在A上的操作: 1.终端输入ssh-keygen (后边可以指定加密算法:-t 算法,如果不指定就是默认的rsa) 原理: 首先通过ssh-keygen命令生成密钥对(即公玥和私钥) 生成后密钥对会自动保存到/root/.ssh目录下,此目录下有两个文件即: id_rsa(私钥),id_rsa.pub(公钥) 2.终端输入ssh-copy-id 要连接的ip地址(如果本地/etc/hosts配置文件中有该地址的别名也可以用别

使用rsync基于ssh免密登陆进行备份或目录同步

日常工作中有很多的备份工作,rsync是一个很不错的工具,尝试使用基于ssh免密登陆的方式进行备份,测试成功,是可行且方便的方法,撰文记之,以备后用: 1.A主机root用户对B主机root用户做ssh免密登陆,此过程不再赘述,请自行百度. 2.A主机安装rsync命令:yum install rsync -y 3.在A主机根目录下创建/ceshi目录,B主机根目录下也创建/ceshi目录,并touch一些测试文件. 4.执行命令:rsync -a -e "ssh" 192.168.2