通过ssh限制访问

我们有一个由多个用户共享的数据处理工作站。 我想在该机器上设置一个脚本来处理我的数据,然后将其复制回个人机器。

我最近了解了ssh公钥authentication,所以我的第一个想法是只是将该机器的公钥添加到我的authorized_keys文件,并添加一个scp命令到我的脚本。 但是,这使得该机器上的任何人只要知道我的机器的IP地址,就可以直接进入我的机器。 什么是安全设置这种事情的正确方法?

你可以做的是build立公钥authentication,反过来; 即在个人计算机上创build密钥对,并将公钥添加到数据处理工作站的authorized_keys中。

数据处理将通过向DP工作站发送数据,运行命令,然后将其复制回来。 例如,

 #!/bin/sh ssh common@dp /path/to/process_data_script scp common@dp:/path/to/data /copy/here 

由于数据处理工作站(DPW)没有为多用户访问设置正确,而且您也没有计划这么做,所以您可能比对推送处理的数据有更好的运气:即您可以拥有您的DPW作业通过电子邮件向您发送警报,然后手动将SFTP / SCP插入DPW并获取处理后的数据,或者使用rsync将DPW“数据处理”文件夹拉到您的源文件夹机器(可以select--remove-sent-files在传输后删除DPW数据),例如每小时一次。

首先,私钥应具有权限0600以便它只能由您(或盒子上的root用户)读取。

私钥通常具有密码短语,因此闲置的中介者不能使用它们,但这对脚本不起作用。 处理这个漏洞的一种方法是设置另一个只需要访问和权限所需的帐户。

最后,考虑采取相反的行动。 让您的可信计算机从其他共享机器获取数据。 你build议的方向更容易受到攻击。 如果你喜欢,你可以设置一些信号脚本,以便远程机器可以说:“嘿,我完成了,来得到它”,你的本地机器可以发射工作做转移。