使用公钥/私钥设置无密码的Linux登录

使用一组公共/私人密钥让您登录到远程Linux系统或使用ssh不用密码可以很方便的运行命令,但设置只是TAD棘手。以下是如何和脚本来帮助。

Ivanastar / Getty Images

建立一个帐户Linux的系统,让你登录或运行命令,远程没有密码是不是所有的辛苦,但也有一些繁琐的细节,你需要,如果你想让它工作得到正确。在这篇文章中,我们正在经历的过程中运行,然后显示一个脚本,可以帮助管理的细节。

设置好之后,如果希望在脚本中运行ssh命令,尤其是计划自动运行的命令,无密码访问尤其有用。

你不必使用这两个系统上相同的用户帐户这是需要注意的重要。事实上,你可以用你的公钥对数字的系统上的帐户或多个系统上的不同的帐户。

下面是如何设置的。

从哪个系统开始?

首先,您需要在希望发出命令的系统上启动。您将使用这个系统来创建ssh密钥。您还需要访问将在其上运行这些命令的远程系统上的帐户。

为了明确角色,我们将场景中的第一个系统称为“boss”,因为它将发出命令在另一个系统上运行。

因此,命令提示符:

老板$

如果您还没有在boss系统上为您的帐户设置公钥/私钥对,请使用如下所示的命令创建一个公钥/私钥对。注意,您可以在各种加密算法之间进行选择。(一般使用RSA或DSA)请注意,要在不输入密码的情况下访问系统,您将不需要为下面对话框中显示的两个提示输入密码。

如果您已有与此账户相关联的公钥/私钥对,跳过此步骤。

老板$的ssh  - 凯基-t生成的RSA公钥/私钥RSA密钥对。输入文件中保存密钥(/home/myself/.ssh/id_rsa):输入密码(空为没有密码):<==只要按下回车键再次输入相同的密码:<==只需按下回车键您的身份已被保存在/home/myself/.ssh/id_rsa。你的公钥已经保存在/home/myself/.ssh/id_rsa.pub。关键指纹:SHA256:1zz6pZcMjA1av8iyojqo6NVYgTl1 + CC + N43kIwGKOUI自己@老板键的randomart形象是:+ --- [RSA 3072] ---- + |。.. ||E + ..。| | .+ .o + o | | ..+.. .o* . | | ... So+*B o | | + ...==B . | | . o . ....++. | |o o . . o..o+ | |=..o.. ..o o. | +----[SHA256]-----+

上面显示的命令将创建公钥和私钥。一方加密,另一方解密。因此,这些密钥之间的关系非常关键,私钥也应该如此决不共享。相反,它应该留在BOSS系统对您的.ssh文件夹。

请注意,您的公共和私有密钥,在创建,将被保存在您的.ssh文件夹中。

下一步是复制上市关键看你想从BOSS系统接入系统,而无需使用密码。您可以使用scp不过,在这一点上,您仍然需要输入密码。在本例中,该系统称为“target”。

老板scp . ssh / id_rsa美元。myacct@target:/home/myaccount myacct@target的密码:

在目标系统(运行命令的系统)上,需要安装公钥。如果您没有.ssh目录(例如,如果您从未在该系统上使用过ssh),运行这样的命令将为您设置一个目录:

目标$ SSH本地主机的目标日期$ LS -la的.ssh总12 drwx ------ 2 myacct myacct 4096年01月19 11点48分。drwxr-XR-×6 myacct myacct 4096年01月19十一时49分.. -rw-R  -  R-- 1 myacct myacct 222年01月19周11时48的known_hosts

仍然在目标系统上,你则需要添加您从“老板”系统传送到您的的.ssh / authorized_keys文件的公钥。下面的命令将把如果它已经存在的键添加到该文件的末尾或创建文件,并添加键值,如果该文件不存在。

目标$猫id_rsa。酒吧> > . ssh / authorized_keys

接下来,你需要确保你的authorized_keys文件的权限设置为600。如果不是,运行CHMOD 600的.ssh / authorized_keys中命令。

目标$ ls -l authorized_keys -rw——1 myself myself 569 Jan 19 12:10 authorized_keys

同时检查以确保在目标系统上的.ssh目录权限被设置为700修复与权限chmod 700 . ssh如果需要的话。

目标$ LS -ld的.ssh drwx ------ 2 myacct myacct 4096年1月14 15:54的.ssh

此时,你应该能够从您的BOSS系统,而无需输入密码远程运行命令到目标系统中。这应该工作,除非在目标系统上的目标用户帐户具有相同用户名和主机你想从连接一个旧的公共密钥。如果是这样,你应该能够删除早期(和相互冲突)项。

使用脚本

使用脚本可以使一些工作变得容易得多。然而,在下面的示例脚本中,您将遇到一个恼人的问题,即在配置无密码访问之前,您必须多次输入目标用户的密码。一种选择是将脚本分为两部分——需要在boss系统上运行的命令和需要在目标系统上运行的命令。

这里是做它,所有的脚本的版本:

# !/bin/bash #注:此脚本要求您有密码远程acct #为了建立password-free访问使用您的公钥LOC = '主机' #你想要的本地系统运行命令从#我们密码#得到目标系统和帐户echo - n“目标系统”>读REM echo - n”目标用户>“读用户#创建一个密钥对,如果不存在公钥(!- f ~ / . ssh / id_rsa。酒吧];然后ssh-keygen -t rsa fi #确保一个.ssh目录存在于远程帐户回显检查远程系统上的.ssh目录ssh $user@$REM "if [!- d /home/$用户/。ssh);然后mkdir /home/$用户/ . ssh;共享公钥(使用本地主机名)回送复制公钥scp ~/.ssh/id_rsa。酒吧user@ REM:美元/ home / user / $ user - LOC美元。将公钥放入正确的位置echo将密钥添加到authorized_keys ssh $user@$REM "cat /home/$user/$user-$LOC。酒吧> > /home/$用户/。设置authorized_keys的权限。ssh(可能已经设置好了)回显设置权限ssh $user@$REM "chmod 600 ~/。ssh/authorized_keys" ssh $user@$REM "chmod 700 ~/。ssh" #尝试——不应该要求密码回显测试——如果没有密码要求,您都设置ssh $user@$REM /bin/hostname

该脚本已配置为在您每次必须输入密码时告诉您它在做什么。交互将会是这样的:

$ ./rem_login_setup目标系统>果蝇目标用户>萝拉为@果蝇的密码远程系统萝拉.ssh目录检查:复制公钥萝拉@果蝇的密码:id_rsa.pub 100%567 219.1KB / s的00:00添加关键authorized_keys的萝拉@果蝇的密码:设置权限萝拉@果蝇的密码:测试 - 如果请求没有密码,你都设置果蝇

在上面的场景之后,你就可以像这样登录lola在fruitfly上的账号了:

$的ssh萝拉@果蝇[萝拉@果蝇〜] $

一旦密码登录设置,你俩可以登录由BOSS系统到目标系统没有密码和运行任意SSH命令。运行没有这样一个密码并不意味着你的帐户的安全性较低。然而,老板的系统保护你的密码可以根据目标的性质变得重要得多。

加入对网络世界的社足球竞猜app软件区Facebook的LinkedIn对那些顶级心态的话题发表评论。
相关:

版权©2020足球竞彩网下载

工资调查:结果在