Linux ssh密钥自动登录(转)

在开发中,经常需要从一台主机ssh登陆到另一台主机去,每次都需要输一次login/Password,很繁琐。
使用密钥登陆就可以不用输入用户名和密码了

实现从主机A免密码登陆到主机B,需要以下几个步骤:
1. 在主机A“~/.ssh/”目录下执行命令“ssh-keygen -t rsa”(生成过程中,一路回车),生成两个文件id_rsa和id_rsa_pub,这两个文件实际上是一个密钥对,id_rsa是私钥,id_rsa_pub是公钥;
2. 将文件id_rsa_pub从主机A拷贝(可以使用scp命令)到主机B“~/.ssh/”目录下;
3. 登陆到主机B上, 进入“~/.ssh/”目录,将从主机拷贝来的id_rsa_pub文件添加到文件“authorized_keys”尾部(cat id_rsa_pub>>authorized_keys),若文件“authorized_keys”不存在,则创建;确保“~/.ssh/authorized_keys”的权限至少为600;

4. 从主机A登陆主机B,第一次登陆时主机B要自动设置known_hosts文件,所以需要输入yes,以后就不需要了;

P.S.当然你登陆主机A和主机B用的是同一个用户名

配置用户的公钥登陆时,配置完authorized_keys居然一直不生效,于是google之,发现原来是因为.ssh目录和下面文件的权限问题导致的,因为目录的权限已经超过了sshd的要求权限。

如果希望ssh公钥生效需满足至少下面两个条件:
1) .ssh目录的权限必须是700 
2) .ssh/authorized_keys文件权限必须是600

锦上添花:
假设你的用户名为user,已经设置好了密钥登陆主机B。那么你可以在shell的配置文件(比如.bashrc)里定义一个alias
alias b=‘ssh [email protected]‘
以后每次你启动shell终端后,输入b,回车,直接就ssh登陆到主机B上。

http://blog.csdn.net/yasaken/article/details/7420093

时间: 2024-07-31 21:51:51

Linux ssh密钥自动登录(转)的相关文章

Linux expect实现自动登录

expect expect可以让我们实现自动登录远程机器,并且可以实现自动远程执行命令.当然若是使用不带密码的密钥验证同样可以实现自动登录和自动远程执行命令.但当不能使用密钥验证的时候,我们就没有办法了.所以,这时候只要知道对方机器的账号和密码就可以通过expect脚本实现登录和远程命令. 引言 目前在公司是一人一台虚拟机,大多数工作都要在虚拟机上完成,为此每天要执行很多次[ssh [email protected]]指令登录虚拟机:有很多方式解决这个问题,如使用xshell.secureCRT

云服务器 ECS Linux SSH 无法远程登录问题Permission denied

云服务器 ECS Linux SSH 无法远程登录问题,SSH 登录时出现如下错误:Permission denied, please try again 使用以下命令编辑配置 su - vi /etc/ssh/sshd_config 在文件中找到 #PermitRootLogin without-password 注意有的linux系统这条语句可能有微小的差别 将之改为 PermitRootLogin yes 注意要将前面的#去掉 ![](https://s1.51cto.com/images

linux启动后自动登录并运行自定义图形界面程序

在<Ubuntu CTRL+ALT+F1~F6 进入命令模式后不支持中文显示的解决办法>一文中提到linux启动在以后运行一个独占显示器的图形程序的两种办法. 1.不启动xserver,使用fb或者directfb图形模式: 2.启动xserver不启动桌面系统. 第一种方法性能并不一定高,因为支持fb的显卡驱动可能找不到,就是用上显卡驱动了也需要CPU大量参与.另外如果用这种方式可供选择的图形程序开发技术就受限了.所以这种方法通常用在嵌入式环境下. 第二种方法只要显卡驱动了,CPU就能得到解

Linux Server 开机自动登录和自启动程序设置

1. 概述 linux服务器已被广泛使用,大多情况下都可以稳定的运行.但是不排除因其他外在因素例如断电等原因而导致的关机.如果在没有运维或者运维临时无法及时维护时,那么server的自启动程序就显得尤为重要了. 2. Linux Server设置 2.1 供电自启动 主机在意外情况下断电后关闭,当恢复供电希望主机自行启动.可在主机BIOS中进行设置,一般机器都会支持.不同的机型可能描述不太一样.一般在电源管理或者Power Manager中进行设置. 2.2 以某个用户身份自动登录 可以通过修改

ssh 配置自动登录

假定 机器A 连接至 机器B . 1. 在机器A上,生成RSA秘钥对 ssh-keygen -t rsa 期间passphrase不输入密码.默认生成文件至 ~/.ssh/ -rw------- 1 webadmin webadmin 1675 10月 17 12:09 id_rsa -rw-r--r-- 1 webadmin webadmin 405 10月 17 12:09 id_rsa.pub 2. 拷贝 id_rsa.pub 的内容追加至机器B的~/.ssh/authorized_key

Linux ssh 免密登录设置成功,却不生效

在本机上使用非root账户,生成ssh 密钥,然后执行ssh-copy-id -i /home/用户/.ssh/id_rsa.pub 远程用户@远程ip,本机提示已经ssh公钥添加到远程主机用户/.ssh下. 执行ssh 远程用户@远程IP登录却仍然需要输入密码.显然免密没生效. 排查各种问题,比如本机是否开启免密登录,用户.ssh权限等等,都没找到问题所在,切换到root用户下,查看root用户的.ssh文件,发现有生成公钥,将其干掉.然后载重新1,2步凑,ok了. 原文地址:http://b

linux ssh密钥登录

ssh 端口:tcp 22 建议创建普遍用户登录管理 创建用户 useradd user 设置密码 passwd user 创建密钥 ssh-keygen -t rsa -P '' 创建公钥 cat ~/.ssh/id_rsa.pub >~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys 私钥 id_rsa ssh配置文件 vi /etc/ssh/sshd_conf -------------------------------- Pe

ssh使用密钥自动登录,禁止口令登录

1.配置私钥A主机[[email protected] ~]# ssh-keygen -t rsa #[生成密钥,会生成一个私钥和一个公钥,直接回车,那么以后你登录服务器就不会验证密码,否则会要求你输入passphrase,默认会将私钥放在/root/.ssh/id_rsa, 公钥放在/root/.ssh/id_rsa.pub.] [[email protected] ~]# cd /root/.ssh/ #[将公钥拷贝到远程服务器上的/root/.ssh/authorized_keys文件]如

Linux ssh密钥创建及密钥登录

创建密钥在命令行输入ssh-keygen -t rsa生成密钥在询问框中一路回车,会在/root/.ssh/ wen件夹下创建公钥id_rsa.pub和私钥id_rsa拷贝密钥使用命令拷贝公钥到服务器上ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]ssh-copy-id默认是22端口,如果端口不同,需要收到向/root/.ssh/authorized_keys文件中追加公钥使用cat /root/.ssh/id_rsa.pub >>