利用ssh-copy-id实现SSH无密码登录

简介:

第一步: 产生公钥与私钥对:

1
[root@local-host]# ssh-keygen -t rsa

按照提示输入完后,会在~/.ssh目录下生成id_rsa和id_rsa.pub这两个文件

 

第二步:用ssh-copy-id将公钥复制到远程机器中

ssh-copy-id 将本机的公钥复制到远程机器的authorized_keys文件中,ssh-copy-id也会给远程主机的用户主目录(home)和 ~./ssh  和 ~/.ssh/authorized_keys设置合适的权利。

语法:

1
   ssh-copy-id [-i [identity_file]] [user@]machine

选项:

1
   -i:指定公钥文件

实例:

把本地的ssh公钥文件安装到远程主机对应的账户下:

1
2
3
4
5
6
7
8
[root@local-host]# ssh-copy-id -i ~/.ssh/id_rsa.pub remote-host
 
     root@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.


第三步: 登录到远程机器不用输入密码

1
2
[root@local-host]# ssh remote-host
Last login: Mon Sep 11 18:30:00 2017 from remote-host


常见问题:

1
2
[root@local-host]# ssh-copy-id -u demo -i ~demo/.ssh/id_rsa.pub demo@remote_host
/usr/bin/ssh-copy-id: ERROR: No identities found

上述是给demo用户赋予无密码登陆的权利

使用选项 -i ,当没有值传递的时候或者 如果 ~/.ssh/identity.pub 文件不可访问(不存在), ssh-copy-id 将显示上述的错误信息  ( -i选项会优先使用将ssh-add -L的内容)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
[root@local-host]# ssh-agent $SHELL
 
 
[root@local-host]# ssh-add -L
 
The agent has no identities.
 
 
 
[root@local-host]# ssh-add
 
Identity added: /home/demo/.ssh/id_rsa (/home/demo/.ssh/id_rsa)
 
 
 
[root@local-host]# ssh-add -L
 
ssh-rsa AAAAB3NUaC1TR2SJKAABIwAAAQEAsJIEILuftj8aSxMa3k8t6JvM79DpBV
 
aHreqPShTYp7kISDMUNzUpnyxsHpH1tQ/Ow== /home/demo/.ssh/id_rsa
 
 
 
[root@local-host]# ssh-copy-id -i remote-host
 
demo@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]

本文转自奔跑在路上博客51CTO博客,原文链接http://blog.51cto.com/qiangsh/1964412如需转载请自行联系原作者


qianghong000

相关文章
|
1月前
|
域名解析 网络协议 Ubuntu
虚拟机ip不停地变每次使用ssh不好登录?有手就行!
虚拟机ip不停地变每次使用ssh不好登录?有手就行!
29 1
|
15天前
|
监控 前端开发 安全
【专栏】介绍了前端工程师如何掌握SSH命令,包括SSH协议的基础知识、命令行操作如登录、文件传输、目录管理和进程管理
【4月更文挑战第29天】本文介绍了前端工程师如何掌握SSH命令,包括SSH协议的基础知识、命令行操作如登录、文件传输、目录管理和进程管理。在前端开发中,SSH用于部署项目、协同后端开发及服务器监控。文章还强调了使用密钥认证、配置别名及安全注意事项,并提醒开发者面对问题时如何解决。学习和熟练运用SSH是前端工程师适应复杂项目需求的关键。
|
20天前
|
安全 Unix Linux
基于MobaXterm工具的Linux远程SSH登录
本文介绍了如何使用 MobaXterm 进行 Linux 远程登录。首先,从官方网站下载并安装 MobaXterm。启动后,创建新的远程会话,选择 SSH 类型,输入服务器 IP、主机名和端口。接着,提供用户名和密码进行连接。成功后,即可使用远程终端执行命令。此外,文章还提到了其他常用的 Linux 远程登录工具,如 PuTTY、OpenSSH、SecureCRT 和 Xshell,强调了选择工具时应考虑个人偏好和安全需求。
|
20天前
|
Ubuntu Shell Linux
Shell批量SSH免交互登录认证
Shell批量SSH免交互登录认证
|
6月前
|
网络安全
SNETCracker.exe 2022/1/26 31:13:29----检查12.26.20.1:SSH登录发生异常!未能加载文件或程序集“ChilkatDotNet4.dll”或它的某一个依赖项
SNETCracker.exe 2022/1/26 31:13:29----检查12.26.20.1:SSH登录发生异常!未能加载文件或程序集“ChilkatDotNet4.dll”或它的某一个依赖项
154 0
|
2月前
|
安全 Shell 网络安全
ssh配置无密码验证
ssh配置无密码验证要在SSH中配置无密码验证,您需要使用公钥验证【2月更文挑战第18天】
43 1
|
3月前
|
安全 网络协议 Linux
|
3月前
|
安全 网络协议 Shell
SSH连接密码问题:原因、表现与解决方案
SSH连接密码问题:原因、表现与解决方案
148 3
|
3月前
|
关系型数据库 网络安全 数据库
通过SSH登录OceanBase数据库需要修改用户密码,然后使用SSH客户端进行远程登录
通过SSH登录OceanBase数据库需要修改用户密码,然后使用SSH客户端进行远程登录
80 6
|
3月前
|
存储 Linux 网络安全
如何在 Linux 中删除 SSL 证书和 SSH 密码?
如何在 Linux 中删除 SSL 证书和 SSH 密码?
94 1
如何在 Linux 中删除 SSL 证书和 SSH 密码?