Oxw*_*ivi 292 ssh authentication
我希望能够通过 ssh 登录远程,而无需一直输入密码。
Rin*_*ind 311
执行此命令:
ssh-keygen
Run Code Online (Sandbox Code Playgroud)
ssh-copy-id user@host
## or if your server uses custom port no:
ssh-copy-id "user@host -p 1234"
Run Code Online (Sandbox Code Playgroud)
复制密钥后,正常ssh进入机器:
ssh user@host
Run Code Online (Sandbox Code Playgroud)
您现在可以在不输入密码的情况下从您执行命令的特定机器登录。
not-marco@rinzwind-desktop:~$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/not-marco/.ssh/id_rsa):
Created directory '/home/not-marco/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/not-marco/.ssh/id_rsa.
Your public key has been saved in /home/not-marco/.ssh/id_rsa.pub.
The key fingerprint is:
b1:25:04:21:1a:38:73:38:3c:e9:e4:5b:81:e9:ac:0f not-marco@rinzwind-desktop
The key's randomart image is:
+--[ RSA 2048]----+
|.o= . oo. |
|*B.+ . . |
|*=o . o . |
| = . = |
|. o S |
|E. |
| o |
| . |
| |
+-----------------+
not-marco@rinzwind-desktop:~$ ssh-copy-id not-marco@server
not-marco@server's password:
Now try logging into the machine, with "ssh 'not-marco@server'", and check in:
~/.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.
Run Code Online (Sandbox Code Playgroud)
这假设您已经可以通过 SSH 成功连接到您的服务器。
您需要生成一个 SSH 密钥对,它允许您在不使用密码的情况下识别您的身份。如果您愿意,您可以选择使用密码保护密钥,但这可以留空,允许完全无密码的 SSH 访问。
ssh-keygen
这将创建一个id_rsa
和id_rsa.pub
文件。这pub
文件是服务器上的内容,私钥 ( id_rsa
) 是您随身携带的东西,也是您识别自己的方式。ssh-copy-id user@server
将用户替换为远程用户,将服务器替换为机器 DNS 名称或 IP 地址。它会提示您输入 SSH 密码,输入密码,如果一切成功,您就可以通过以下方式访问机器ssh user@server
不需要密码的情况下。小智 40
键入以下命令:
ssh-keygen
按下Enter键,直到你得到的提示
ssh-copy-id -i root@ip_address
(它会询问主机系统的密码)
ssh root@ip_address
现在您应该无需任何密码即可登录。
小智 27
我通常这样做的方式如下:
ssh-keygen -t rsa
(当提示输入密码时,将其留空)
然后:
cat ~/.ssh/id_rsa.pub | ssh username@hostname 'cat >> .ssh/authorized_keys'
(这要求文件夹 .ssh 位于目标主机名的主目录中,其中包含 authorized_keys 文件)
当然,将 username 替换为所需的用户名,将 hostname 替换为所需的主机名或 IP 地址
之后,就像你习惯的那样,通过 SSH 连接到那个盒子。
Bru*_*ira 19
我通常使用sshpass
它,安装它sudo apt-get install sshpass
并像这样使用它
sshpass -p 'password' ssh your_username@your_server
Run Code Online (Sandbox Code Playgroud)
Thu*_*fir 11
禁用密码验证
由于很多拥有 SSH 服务器的人使用弱密码,因此许多在线攻击者会寻找 SSH 服务器,然后开始随机猜测密码。攻击者可以在一小时内尝试数千个密码,只要有足够的时间,甚至可以猜出最强的密码。推荐的解决方案是使用 SSH 密钥而不是密码。为了像普通 SSH 密钥一样难以猜测,密码必须包含 634 个随机字母和数字。如果您始终能够使用 SSH 密钥登录到您的计算机,您应该完全禁用密码验证。
如果您禁用密码验证,则只能从您特别批准的计算机进行连接。这极大地提高了您的安全性,但使您无法在没有预先批准 PC 的情况下从朋友的 PC 连接到您自己的计算机,或者在您不小心删除密钥时从您自己的笔记本电脑连接到自己的计算机。
建议禁用密码身份验证,除非您有特定原因不这样做。
要禁用密码身份验证,请在 sshd_config 文件中查找以下行:
Run Code Online (Sandbox Code Playgroud)#PasswordAuthentication yes
用如下所示的行替换它:
Run Code Online (Sandbox Code Playgroud)PasswordAuthentication no
保存文件并重新启动 SSH 服务器后,登录时甚至不应该要求您输入密码。
https://help.ubuntu.com/community/SSH/OpenSSH/Configuring#disable-password-authentication
小智 9
该解决方案是专门为使用用户的Windows到SSH到他们的远程机器包括云图AWS云和GCE云
最近使用这个解决方案在 GCE 上远程登录新部署的 vm 映像。
如果您拥有私钥:
打开puttygen
,按加载按钮并选择您的私钥 ( *.pem
) 文件。
如果您没有私钥:
puttygen
,(来自来源 1,下面给出的链接)
notepad
)从 PuTTY 密钥生成器的“用于粘贴到 OpenSSH 授权密钥文件的公钥”部分复制您的公钥数据,并将密钥数据粘贴到authorized_keys
文件中。
确保此文件中只有一行文本。
将authorized_keys 文件上传到远程机器的主目录。
制作.ssh
目录(如果不存在)
将authorized_keys
文件复制到.ssh
目录。
(这将替换任何现有authorized_keys
文件,请注意这一点)。
如果文件存在,只需将此文件的内容添加到现有文件中。
运行命令设置权限:
sudo chmod 700 .ssh && chmod 600 .ssh/authorized_keys
Run Code Online (Sandbox Code Playgroud)
现在,您ssh
无需每次都输入凭据即可进入远程机器。
如果您创建公钥/私钥对并使用我们新创建的公钥登录,则无需输入密码。根据您的密钥环和/或 ssh 代理的配置,您可能需要使用密码保护您的密钥。
这是为您准备的众多简短操作指南之一。对于这种方法的安全性至关重要,生成的私钥仍然是私有的!您永远不应该与任何人共享它或允许以任何身份访问它。
此命令在 中生成一个相当强的密钥~/.ssh/
:
ssh-keygen -b 4096
Run Code Online (Sandbox Code Playgroud)
在~/.ssh/
你会发现你的公钥为id_rsa.pub
. 它的内容应该authorized_keys
通过可移动媒体(笔式驱动器)传输或通过在服务器上短暂启用密码验证,然后使用ssh-copy-id ~/.ssh/id_rsa.pub username@server
然后再次禁用它来附加到您的服务器文件。
如果您选择使用密码保护您的密钥(在第一步中),您可以使用ssh-agent
或 Ubuntu 密钥环在本地保护该密码,这样您就不必一直输入它。
归档时间: |
|
查看次数: |
397904 次 |
最近记录: |