ssh免密码登陆
来源:互联网 发布:微信相关软件 编辑:程序博客网 时间:2024/04/30 15:02
最近放弃了xshell,从此每次ssh上服务器都要输入密码,问题是服务器众多,每天登陆次数也多,输入密码成了
繁重的工作。
google几次后,试用了免密码登陆的方式,用起来挺方便的。今记录如下,以免忘记。
准备条件:
服务器A:192.168.1.1
服务器B:192.168.1.2
假使我们希望在服务器A(简称A)上想登陆到服务器B(简称B),B端口:22,登陆用户:user1,密码:123
方法一(ssh-keygen):
在A上执行:
ssh-keygen -t rsa //连续按3次回车,即在本地生成了公钥和私钥,不设置密码ssh user1@192.168.1.2 -p 22 "mkdir .ssh"scp -P 9922 ~/.ssh/id_rsa.pub user1@192.168.1.2:.ssh/id_rsa.pub
执行完以后,基本上在服务器A上,执行ssh user1@192.168.1.2 -p 22不需要输入密码。
为了简化输入用户,ip,端口等信息,可以如下做
在 ~/.ssh 下创建config文件输入以下内容Host BHostName 192.168.1.2User user1Port 22如果还有其他服务器信息,只需在该文件最后再次添加如上信息便可。
修改完config文件后,以后只需执行 ssh B基本上能登陆服务器B了,既短,又不需要输入密码。
好了,方法一告一段落,但是该方法有个限制,就是只有两台服务器在同一网段,才有效,当不在同一网段时
便会失败,不知道是我服务器配置问题,还是网络导致。如有知道原因的请不吝赐教。多谢。
因此花了点时间研究方法二,如下。
方法二:
编写脚本,随便什么名字。
#!/bin/expectset timeout 30 spawn ssh [lindex $argv 0] #运行参数一,服务器信息expect "*password:"send [lindex $argv 1]\r #服务器登陆密码interact
运行该脚本:
expect xx.sh B 123
此时服务器B的配置已经写进~/.shh/config。
如未写进~/.ssh/config配置,则该脚本需要相应修改。
介绍完毕,不过我一般会在 ~/.bash_profile里面加入一行:
alias loginb="expect xxx.sh B 123"
每次打开终端的时候该别名会自动起作用,于是乎,每次我只需要使用“loginb”命令,便能登陆服务器B。
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
本文地址:http://blog.csdn.net/icoler/article/details/8154773 转发请注明。
- SSH登陆免密码
- ssh免密码登陆
- ssh 免密码登陆
- ssh免密码登陆
- ssh免密码登陆
- ssh免密码登陆
- ssh 免密码登陆
- ssh 免密码登陆
- ssh 免密码登陆
- ssh免密码登陆
- ssh免密码登陆
- ssh免密码登陆
- ssh免密码登陆
- SSH免密码登陆
- ssh免密码登陆
- ssh免密码登陆
- ssh免密码登陆
- SSH免密码登陆
- 哎,人生的选择题
- 值传递和引用传递
- SGU 549 - Dumbbells
- 第七周周报
- Java调用外部程序技巧
- ssh免密码登陆
- 多重继承与虚函数表的实现原理
- JSP_SESSION
- js时钟显示
- 为android-support-v4.jar打包源码
- timer的应用一:制作简单的进度灯
- 第八周周报
- Oracle处理oracle Blob字段
- ZOJ 2238 Code