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:

a@A:~> 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 a@A

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

a@A:~> ssh b@B mkdir -p .ssh
b@B's password:

Finally append a's new public key to b@B:.ssh/authorized_keys and enter b's password one last time:

a@A:~> cat .ssh/id_rsa.pub | ssh b@B 'cat >> .ssh/authorized_keys'
b@B's password:

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

a@A:~> ssh b@B

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

最新文章

  1. Webform 上传图片加水印
  2. svn 版本控制
  3. C#实现每隔一段时间执行代码(多线程)
  4. iOS边练边学--级联菜单的两种实现方法
  5. Rman实现数据库迁移
  6. JavaScript功能一览
  7. php中getimagesize函数的用法
  8. myeclipse如何修改Web项目名称
  9. uva 10560 - Minimum Weight(数论)
  10. Java调度框架Quartz简单示例
  11. openresty源码剖析——lua代码的执行
  12. flask 扩展之 -- flask-script
  13. 2018 HDU多校第四场赛后补题
  14. 【转载】chown和chmod使用
  15. jQuery.extend 函数使用
  16. sql ,内连接,外连接,自然连接等各种连接
  17. lm393
  18. jquery validate 多种使用方式
  19. 【python3】爬取鼠绘汉化的海贼王漫画
  20. js 替换部分内容为星号

热门文章

  1. 子查询及pymysql
  2. 前端 day 039
  3. PyCharm常见用法
  4. GoLang爬取花瓣网美女图片
  5. 移动平台的meta标签(转)
  6. 深入理解JavaScript系列(2):揭秘命名函数表达式
  7. .net和js 获取当前url各种属性
  8. node.js服务器端下载、上传文件
  9. Redis简介及持久化
  10. springboot+mybatis实现登录功能,返回json