ssh-copy-id命令详解 使用ssh-keygen和ssh-copy-id三步实现SSH无密码登录
http://blog.csdn.net/john_f_lau/article/details/22303341 http://blog.chinaunix.net/uid-26284395-id-2949145.html
ssh-copy-id命令可以把本地的ssh公钥文件安装到远程主机对应的账户下。
达到的功能:
ssh-copy-id - 将你的公共密钥填充到一个远程机器上的authorized_keys文件中。
使用模式:
ssh-copy-id [-i [identity_file]] [user@]machine
描述:
ssh-copy-id 是一个实用ssh去登陆到远程服务器的脚本(假设使用一个登陆密码,
因此,密码认证应该被激活直到你已经清理了做了多个身份的使用)。
它也能够改变远程用户名的权限,~/.ssh和~/.ssh/authorized_keys
删除群组写的权限(在其它方面,如果远程机上的sshd在它的配置
文件中是严格模式的话,这能够阻止你登陆。)。
如果这个 “-i”选项已经给出了,然后这个认证文件(默认是~/.ssh
/id_rsa.pub)被使用,不管在你的ssh-agent那里是否有任何密钥。
另外,命令 “ssh-add -L” 提供任何输出,它使用这个输出优先于
身份认证文件。如果给出了参数“-i”选项,或者ssh-add不产生输出,
然后它使用身份认证文件的内容。一旦它有一个或者多个指纹,它使
用ssh将这些指纹填充到远程机~/.ssh/authorized_keys文件中。
第一步:在本地机器上使用ssh-keygen产生公钥私钥对
- jsmith@local-host$ [Note: You are on local-host here]
- jsmith@local-host$ ssh-keygen
- Generating public/private rsa key pair.
- Enter file in which to save the key (/home/jsmith/.ssh/id_rsa):[Enter key]
- Enter passphrase (empty for no passphrase): [Press enter key]
- Enter same passphrase again: [Pess enter key]
- Your identification has been saved in /home/jsmith/.ssh/id_rsa.
- Your public key has been saved in /home/jsmith/.ssh/id_rsa.pub.
- The key fingerprint is:
- 33:b3:fe:af:95:95:18:11:31:d5:de:96:2f:f2:35:f9 jsmith@local-host
第二步:用ssh-copy-id将公钥复制到远程机器中
- jsmith@local-host$ ssh-copy-id -i ~/.ssh/id_rsa.pub remote-host
- jsmith@remote-host's password:
- Now try logging into the machine, with "ssh 'remote-host'", and check in:
- .ssh/authorized_keys
- to make sure we haven't added extra keys that you weren't expecting.
注意: ssh-copy-id 将key写到远程机器的 ~/ .ssh/authorized_key.文件中
第三步: 登录到 远程机器不用输入密码
- jsmith@local-host$ ssh remote-host
- Last login: Sun Nov 16 17:22:33 2008 from 192.168.1.2
- [Note: SSH did not ask for password.]
- jsmith@remote-host$ [Note: You are on remote-host here]
常见问题:
- ssh-copy-id -u eucalyptus -i ~eucalyptus/.ssh/id_rsa.pub eucalyptus@remote_host
上述是给eucalyptus用户赋予无密码登陆的权利
[1]
- /usr/bin/ssh-copy-id: ERROR: No identities found
使用选项 -i ,当没有值传递的时候或者 如果 ~/.ssh/identity.pub 文件不可访问(不存在), ssh-copy-id 将显示上述的错误信息 ( -i选项会优先使用将ssh-add -L的内容)
- jsmith@local-host$ ssh-agent $SHELL
- jsmith@local-host$ ssh-add -L
- The agent has no identities.
- jsmith@local-host$ ssh-add
- Identity added: /home/jsmith/.ssh/id_rsa (/home/jsmith/.ssh/id_rsa)
- jsmith@local-host$ ssh-add -L
- ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAsJIEILxftj8aSxMa3d8t6JvM79DyBV
- aHrtPhTYpq7kIEMUNzApnyxsHpH1tQ/Ow== /home/jsmith/.ssh/id_rsa
- jsmith@local-host$ ssh-copy-id -i remote-host
- jsmith@remote-host's password:
- Now try logging into the machine, with "ssh 'remote-host'", and check in:
- .ssh/authorized_keys
- to make sure we haven't added extra keys that you weren't expecting.
- [Note: This has added the key displayed by ssh-add -L]
[2] ssh-copy-id应注意的三个小地方
- Default public key: ssh-copy-id uses ~/.ssh/identity.pub as the default public key file (i.e when no value is passed to option -i). Instead, I wish it uses id_dsa.pub, or id_rsa.pub, or identity.pub as default keys. i.e If any one of them exist, it should copy that to the remote-host. If two or three of them exist, it should copy identity.pub as default.
- The agent has no identities: When the ssh-agent is running and the ssh-add -L returns “The agent has no identities” (i.e no keys are added to the ssh-agent), the ssh-copy-id will still copy the message “The agent has no identities” to the remote-host’s authorized_keys entry.
- Duplicate entry in authorized_keys: I wish ssh-copy-id validates duplicate entry on the remote-host’s authorized_keys. If you execute ssh-copy-id multiple times on the local-host, it will keep appending the same key on the remote-host’s authorized_keys file without checking for duplicates. Even with duplicate entries everything works as expected. But, I would like to have my authorized_keys file clutter free.
ssh-copy-id命令详解 使用ssh-keygen和ssh-copy-id三步实现SSH无密码登录相关推荐
- SSH用法及命令详解
什么是SSH? 简单说,SSH是一种网络协议,用于计算机之间的加密登录.如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登录是安全的,即使被中途截获,密码也不会泄露. ...
- Dockerfile命令详解之 COPY
许多同学不知道Dockerfile应该如何写,不清楚Dockerfile中的指令分别有什么意义,能达到什么样的目的,接下来我将在容器化专栏中详细的为大家解释每一个指令的含义以及用法. 专栏订阅传送门h ...
- groupadd命令详解
基础命令学习目录首页 原文链接:https://wtj6891.iteye.com/blog/2096076 groupadd创建组群 使用groupadd命令可以在系统中创建组群账户 语法: gro ...
- SSH终端远程复制:scp命令详解
scp命令详解 先说下常用的情况: 两台机器IP分别为:A.104.238.161.75,B.43.224.34.73. 在A服务器上操作,将B服务器上/home/lk/目录下所有的文件全部复制到本地 ...
- java 远程shell脚本_java通过ssh连接服务器执行shell命令详解及实例
java通过ssh连接服务器执行shell命令详解 java通过ssh连接服务器执行shell命令:JSch 是SSH2的一个纯Java实现.它允许你连接到一个sshd 服务器,使用端口转发,X11转 ...
- 2022-08-14 SSH 相关命令详解
SSH 相关命令详解 ssh ssh-keygen ssh-copy-id ssh-agent 和 ssh-add ssh-keyscan sshd ssh ssh – OpenSSH 远端登陆客户端 ...
- linux cpio(copy in/out) 命令详解
linux cpio(copy in/out) 命令详解 功能说明:备份文件. 语 法:cpio [-0aABckLovV][-C <输入/输出大小>][-F <备份档>][- ...
- LINUX经常使用的命令详解
LINUX经常使用的命令详解 源地址:http://blog.itpub.net/29065182/viewspace-1189162/ 1.man 对你熟悉或不熟悉的命令提供帮助解释 eg:man ...
- linux没有semanage命令,SELinux-semanage命令详解
SELinux-semanage命令详解 (2012-06-02 12:06:04) 标签: selinux 命令 semanage 杂谈 NAMEsemanage − SELinux Policy ...
- nmcli命令详解_【高新课堂】第一百二十五期Liunx必备命令
点击上方"蓝字"关注我们吧! Liunx系统启动默认为字符界面,一般不会启用图像界面,所以对命令行的熟练程度能更加高效.便捷的管理Liunx服务器. 这节课向读者介绍Liunx系统 ...
最新文章
- jsp与java_JSP与JavaBeans
- 2021年中寻找新SAP项目机会小记
- mysql load settings_Mysql high performance: Memory setting
- 填坑-十万个为什么?(22)
- dart系列之:在dart中使用packages
- thinkphp5如何使用ajax(变化的核心,也就是ajax作用的核心是什么)
- MUI 宫格组件(grid)怎么取消mui-active背景色?(优先级设置问题)- 踩坑篇
- SIP协议栈读书笔记1
- java控制double输出的小数点位数
- MySql基础笔记(三)其他重要的事情
- WordPress漏洞扫描器wpscan
- 嵌入式Linux用java_嵌入式linux 开发步骤详细解析(Hello Embedded World)
- 数字电路与系统(第三版)答案 戚金清 王兢
- C++无法打开库文件/无法打开源文件
- 2015腾讯校园招聘(菜鸟逆袭腾讯,offer get)
- 计算机设备管理器怎么看主板,电脑主板型号信息查看方法
- cidaemon.exe进程
- 延迟队列实现30分钟订单自动过期失效
- 计算机专业跨考为什么考不了,浙江大学计算机专业考研,为什么这么多跨考计算机...
- 社团管理——原型设计