没有auth登录ssh进行本地开发

时间:2016-05-03 18:28:25

标签: ubuntu ssh sshd

我试图建立一个没有任何密码的本地开发环境。 我使用docker和一个安装了sshd服务的默认容器。 我的想法是将docker box传播给我们的团队,并从login命令中删除所有密码promts。

我尝试将一个默认的pubkey添加到authorized_keys文件中,但ssh服务似乎总是寻找id_rsa文件。 我显然无法为另一台电脑提供我的id_rsa密钥。 所以要么我需要弄清楚如何使ssh寻找另一个密钥文件或我完全禁用密码promt,但我无法找到任何有用的信息。

有什么想法吗?

编辑: 因为有些人有点困惑: 我需要与服务器的ssh连接,而不需要在本地计算机上生成公钥。我的全球目标是禁用密码promt并允许所有用户无需密码登录。

关心安全的方式,因为我们仅将这些容器用于本地开发。

最诚挚的问候, 并提前感谢

编辑:

临时解决方案

sshpass -p mypassword ssh -o StrictHostKeyChecking=no -p 2222 user@server sh myfile.sh

1 个答案:

答案 0 :(得分:0)

您需要做的是:

  1. 生成身份验证密钥对
  2. 在基于Unix的盒子上使用ssh-keygen或在Windows上使用PuTTYGen - 生成新的密钥对。例如,在unix类型

    上使用ssh-keygen
    ssh-keygen -b 4096
    

    按Enter键以使用默认名称(id_rsa和id_rsa.pub)。我认为对于你的情况,当你被要求输入密码时,你只想点击输入(注意这会赢得安全!)。

    然后会生成您的密钥并将其放入/home/your_username/.ssh。

    1. 将生成的公钥上传到容器 实际步骤将根据操作系统的不同而有所不同,但复制公钥(一个以.pub结尾 - 可以在Linux上使用SCP来复制文件)并将它们放在/home/your_username/.ssh/authorized_keys/目录中(创建如果需要,这条路径。)

    2. 设置公钥目录和密钥文件的权限(Linux) 将.ssh文件夹的权限设置为700 I.E. sudo chmod 700 .ssh 并将实际键的权限设置为600 I.E. sudo chmod 600 .ssh/authorized_keys

    3. 很抱歉,如果这是一个告密者之旅,我建议您查看一些说明,例如在Linode的“保护您的服务器”下找到的说明。 https://www.linode.com/docs/security/securing-your-server/和"创建身份验证密钥对"部分。或者对于Windows http://www.servermom.org/passwordless-ssh-login/1608/,它也提供了更多背景信息。

      如果您进行搜索,过去在StackOverflow上也已经回答了几次;)