使用ssh-keygen进行SSH文件传输


2

我是Linux的临时用户,但在理解从我们提供数据的公司发送给我的一些指示时遇到了一些困难。他们希望我们使用ssh(我以前使用过)通过scp传输数据。问题是我从未使用过ssh-keygen,也从未完全理解它的工作方式。有人可以帮我吗。我将附上说明,以便您可以确切地看到他们给我的信息。

*在将要发送数据的帐户的“主”目录中,最好创建一个“ .ssh”目录(如果不存在)。这是用于管理所有ssh密钥对的默认位置。您可以有几个不同的密钥对,因此命名约定很有用(默认情况下,ssh-keygen使用'id-rsa'作为密钥名(id-rsa表示私钥,id-rsa.pub公开)。我通常建议创建密钥对的命令是; ssh-keygen -t rsa -N“” -f名称-C“ account @ server_name-简要说明”

哪里; '-t'标志用于创建密钥的类型(rsa),'-N'标志用于可选的密码短语(“”是空字符串-本质上未设置密码短语(这是自动化过程所需要的) ,但不是您想要的(如果设置为个人使用的话)),'-f'标志用于文件名(这将用于替换默认的'id_rsa'名称-然后可以在调用'scp'命令),'-C'标志用于注释字段(如果您有多个密钥,这很有用,您可以插入简短的描述以了解密钥的用途–我通常建议服务器和帐户生成的密钥包括其主要用途的简短说明;'unduser1 @ hostname-将数据传输到X公司)。*

谢谢您的帮助!


您正在从什么操作系统(Linux,Windows,MacOS等)上执行此操作。您可以通过密码登录到新的Linux机器吗?
Nicholaz 2013年

我在计算机上使用linux,但是最有可能进行数据传输的计算机是Windows计算机。我要向其传输数据的服务器没有“访问权限”。那就是我认为生成密钥应该可以帮助我的东西。据我所知,我觉得他们需要为我提供ssh的密码,但是由于我对什么keygen不太了解,所以我不确定我的想法是否正确。我以为keygen用于为我管理的服务器创建密钥,而不是由它们管理。
里克·威廉姆斯

好的,那我就编辑一下答案。
Nicholaz 2013年

Answers:


4

本质上,您需要做的是使用keygen创建一个公共/私有密钥对。这将为您提供一对文件,例如id_dsaid_dsa.pub

使用SSH,您可以将发布部分放到远程帐户中,并且在登录时,ssh可以针对非公开部分进行检查,并让拥有它的每个人都可以使用。非常松散地将其id_dsa.pub视为锁和id_dsa钥匙。

因此,在任何Linux oder Unix或MacOS计算机上,运行keygen都会给您两个文件:

ssh-keygen -t dsa -N "" -C "my dsa key"

然后将id_dsa.pub文件发送给维护远程计算机的管理员(然后他们需要将其放置在远程计算机上的〜/ .ssh文件夹中)。如果您有远程计算机的密码,则可以自己使用ssh-copy-id user@hostname手册页)将密钥对发送到该计算机。

id_dsa自己保留私有文件()。然后,它需要从您发起连接的计算机转到该计算机。这很大程度上取决于您使用什么操作系统和SSH客户端软件。

如果这也是Linux,则将其放入〜/ .ssh文件夹(如有必要,创建一个文件夹)。

  mkdir ~/.ssh
  chmod 700 ~/.ssh
  mv id_dsa ~/.ssh
  chmod 700 ~/.ssh/id_dsa

从那时起,您应该可以像

 ssh user@remote.machine.com 

要么

 ssh -i ~/.ssh/id_dsa user@remote.machine.com 

在Windows上,这取决于您用于SSH的终端软件,例如,通过ZOC SSH / Telnet终端,您可以为私有文件的文件名提供登录信息(请参见此屏幕截图,该文件将进入“ ssh密钥文件” “字段)。这随软件而异。


因此,如果我为特定计算机生成密钥,则需要将id_rsa.pub密钥提供给另一台服务器的所有者才能连接到该服务器。那是对的吗?
瑞克·威廉姆斯

是。您创建一个对。.pub文件需要转到您登录的服务器(将其视为锁),如果您无法在此处登录,则管理员需要将其放入您的帐户。另一个文件将留在服务器上,以启动连接(从此处进行ssh / scp调用)。
Nicholaz 2013年

真棒!那是我的想法,但不太确定。我认为从linux盒执行上传会比较容易,但是这里的每个计算机都是我的Windows。谢谢您的帮助!
瑞克·威廉姆斯

很高兴听到。然后请考虑检查答案是否正确。
Nicholaz 2013年

请记住,如果您是在Linux机器上生成密钥的,并且具有远程服务器的密码,则还可以运行ssh-copy-id以自动执行复制过程:)
NickW 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.