SSH配置免密登录 详解(踩坑无数总结)

2023-05-16

之前在使用Ansible部署工具的时候,需要先配置好SSH免密登录,在配置时踩了很多的坑(按照很多文章的步骤并不能完全配置好免密登录),因此在踩完所有的坑之后,总结出来这篇文章。

生成公钥、私钥对

在中控机上,执行以下命令,然后一路回车即可。

$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/work/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/work/.ssh/id_rsa.
Your public key has been saved in /home/work/.ssh/id_rsa.pub.
The key fingerprint is:
7a:61:ca:d4:d2:0d:60:c3:c3:ad:9c:eb:bd:92:c3:92 work@********
The key's randomart image is:
+--[ RSA 2048]----+
|     o+.         |
|     .+o.        |
|     . +.        |
|      +o o       |
|      o.S .      |
|     o.= .       |
|     ++o.        |
|    E *..        |
|     . o..       |
+-----------------+

将公钥拷贝到需要控制的机器上去

# 中控机
$ cat ~/.ssh/id_rsa.pub
# 需要控制的机器(将中控机的id_rsa.pub文件的内容追加到authorized_keys)
$ vim ~/.ssh/authorized_keys

修改权限

修改 ~/.ssh 和 authorized_keys 的权限。

修改权限是修改 需要控制的机器 的权限。

$ chmod 700 ~/.ssh

$ chmod 600 ~/.ssh/authorized_keys

查看ssh端口并远程登录

ssh的默认端口是22,公司内部为了安全,可能会修改ssh配置,设立一个新的端口,所以我们可以查看配置文件确定ssh端口。

$ vim /etc/ssh/sshd_config
Port 22 
Port 58518

# 确认端口之后我们就可以登录机器了,-p之后填写端口号
$ ssh -p 22 ip
$ ssh -p 58518 ip
The authenticity of host '[xx.xx.xx.xx]:58518 ([xx.xx.xx.xx]:58518)' can't be established.
ECDSA key fingerprint is xx:xx:xxxx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[xx.xx.xx.xx]:58518' (ECDSA) to the list of known hosts.

第一次登录如果遇到上面的询问,输入yes即可。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SSH配置免密登录 详解(踩坑无数总结) 的相关文章

  • 如何使用 SSH 密钥和 Pageant 通过 Paramiko 连接到 SFTP

    我正在尝试使用受密码保护的 SSH 密钥通过 Paramiko 连接到 SFTP 我已将密钥加载到 Pageant 中 据我所知 Paramiko 支持该密钥 但我无法用它来解密我的私钥 我找到了这个例子here https stackov
  • 如何设置 pexpect ssh 会话的列宽?

    我正在编写一个简单的 python 脚本来通过 SSH 连接到 SAN 运行一组命令 最终 每个命令将与时间戳一起记录到单独的日志中 然后退出 这是因为我们连接的设备不支持证书 ssh 连接 并且当前固件版本没有良好的日志记录功能 我似乎遇
  • 通过 Paramiko SSH 的 SQLAlchemy

    我的服务器上有一个数据库 我需要通过 SSH 访问该数据库 现在我通过使用命令行来获取数据来处理数据库 import paramiko ssh paramiko SSHClient ssh set missing host key poli
  • 无法通过 SSH 连接到 openshift

    我在通过 SSH 访问 Openshift 时遇到问题 我仍然可以通过 Git 将代码推送到 Openshift 但是 当尝试通过 SSH 连接到 Openshift 时 服务器被拒绝 并显示错误 没有可用的受支持的身份验证方法 服务器发送
  • Paramiko 和伪 tty 分配

    我正在尝试使用 Paramiko 连接到远程主机并执行许多文本文件替换 i o e client exec command perl p i e s initial replaced g conf 其中一些命令需要作为 sudo 运行 这会
  • 尝试通过 SSH 克隆时“似乎不是 git 存储库”

    我有一台运行 Windows 10 的计算机 我想在其上托管 git 存储库 OpenSSH 正在运行 我可以通过 Powershell 通过 SSH 连接到机器 因此它是可连接的 我在该机器上名为 Test 的文件夹中创建了一个新的 gi
  • 如何避免权限被拒绝 (publickey) SSH 密钥 (Windows)

    我想通过 SSH 连接我的 ec2 但我收到这个错误 WARNING UNPROTECTED PRIVATE KEY FILE Permissions for F Config first1 pem are too open It is r
  • 登录失败时生成 Python PXSSH GUI

    当登录失败时 我无法阻止 GUI 的生成 失败并生成 GUI 的简单示例 gt gt gt import pxssh gt gt gt gt gt gt ssh pxssh pxssh gt gt gt ssh force password
  • 在远程机器上执行多个命令

    在下面的命令中 我尝试 ssh 命令并执行多个命令 如果任何命令失败 即如果 command1 退出 那么如果 command1 和 commnd 2 退出 否则在远程计算机上执行命令 3 我如何退出 我怎样才能做到这一点 ssh logi
  • 用于搜索内部文件的 ssh 命令

    几周前 我的两个网站可能被 ftp 暴力攻击所利用 破坏了我网站的许多文件 我发现他们通常会在js或php文件中插入以下代码 Trojan code removed as irrelevant to this question 我想通过 s
  • 如何在 Eclipse 中使用 ssh 隧道设置 Subversion?

    我有一个远程服务器 在非标准 ssh 端口上托管我的 subversion 存储库 我想使用 Eclipse 的 subclipse 插件作为客户端来访问 SVN 存储库 我可以使用 svn specialssh 来访问存储库 其中spec
  • 使用Python mysql.connector远程连接MySQL

    以下代码 在同一 LAN 内与 mysql 服务器不同的机器上运行 使用 Python3 和 mysql connector 本地连接到 MySQL 数据库 import mysql connector cnx mysql connecto
  • 无法验证主机真实性

    我第一次做git pull 在git中提示无法确定主机的真实性 与我生成的私钥相比 RSA密钥指纹不正确 我只是想知道如何更新它以便它读取正确的文件以及为什么它首先读取错误的指纹 我遇到了类似的问题 这意味着远程主机未知 不受信任 修复方法
  • 如何配置 Ansible 跳过两个堡垒主机?

    我想编写一个 Ansible 剧本 使用 Ansible 2 7 5 它将在到达目标服务器之前跳过两个主机来执行诸如安装 docker 和 python 等操作 我能够让 Ansible 通过一台主机跳转到server1通过将其添加到我的h
  • Expect 远程 SSH 登录并执行命令的脚本

    我正在使用以下 Expect 脚本远程 SSH 登录 Raspberry Pi 并执行命令 usr bin expect set timeout 60 spawn ssh lindex argv 1 lindex argv 0 expect
  • 通过将密码与命令一起传递,使用 powerShell 脚本进行 ssh

    如果我输入 我可以从 PowerShell ssh 到服务器 ssh 用户名 主机 这会提示输入密码 我输入有效的密码 但我试图编写一个脚本 通过 ssh 进入服务器执行一些脚本并返回 所以我必须传递密码和命令我该怎么做 关于 shell
  • GoLang ssh:尽管将其设置为 nil,但仍出现“必须指定 HosKeyCallback”错误

    我正在尝试使用 GoLang 连接到远程服务器 在客户端配置中 除了用户和密码之外 我将 HostKeyCallback 设置为 nil 以便它接受每个主机 config ssh ClientConfig User user HostKey
  • 使用 paramiko 运行 Sudo 命令

    我正在尝试执行sudo使用 python paramiko 在远程计算机上运行命令 我尝试了这段代码 import paramiko ssh paramiko SSHClient ssh set missing host key polic
  • Composer 用于下载私有 GitHub 存储库

    我无法使用 Composer 下载 github 私人存储库 php composer phar update 我收到以下错误 The https api github com repos company private1 https ap
  • Ansible bitbucket 克隆存储库配置 ssh 错误

    我之前发布过这个问题 但那里的答案不再有效 总之 当使用 Ansible 配置我的 vagrant box 时 在尝试使用 ssh 克隆我的 bitbucket 私有存储库时 我遇到了一个神秘的错误 该错误指出 权限被拒绝 公钥 然而 如果

随机推荐