问题标签 [authorized-keys]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
erlang - Erlang、SSH 和授权密钥
在 Erlang 中使用ssh和public_key应用程序,我发现了一个不错的功能。
我试图通过使用rsa key连接到我正在运行的 Erlang SSH 守护程序,但身份验证失败并且提示我输入密码。
经过一些调试和跟踪(以及几杯咖啡),我意识到,出于某种奇怪的原因,我的用户的无效密钥在那里。authorized_keys文件包含两个密钥。错误的位于文件中的某个位置,而正确的则附加在文件的末尾。
现在,Erlang SSH 应用程序在将提供的密钥与authorized_keys 中包含的密钥进行比较时,它找到了第一个条目(完全忽略了第二个条目——正确的那个)。然后,它切换到不同的身份验证机制(起初它尝试使用dsa而不是rsa,然后提示输入密码)。
问题是:这种行为是有意的,还是应该 SSH 服务器在authorized_keys文件中检查同一用户的多个条目?这是一种通用的 SSH 行为还是仅特定于 Erlang 实现?
git - git push 返回“致命:协议错误:错误的行长字符”
我在我拥有的共享主机帐户上设置了一个远程 Git 存储库。为了允许其他开发人员推/拉,我将他的公钥 (id_rsa.pub) 添加到共享主机上 .ssh/authorized_keys 的末尾。然后他就可以做“git push”了。但是我想确保他不能在我的共享主机上做任何其他事情,只能访问 git,所以我把这个添加到他在 authorized_keys 中的条目的开头,根据man authorized_keys:
现在,当他执行 git-push 时,它会在命令行上响应“致命:协议错误:错误的行长度字符”。
我用谷歌搜索过,发现其他人也有这个问题,但是如果不允许其他用户访问我的共享主机帐户上的 shell,就无法找到足够的答案来解决这个问题。
ssh - 向 ~/.ssh/authorized_keys 添加公钥不会让我自动登录
我将公共 SSH 密钥添加到了authorized_keys文件中。 ssh localhost
应该让我登录而不要求输入密码。
我这样做并尝试输入ssh localhost
,但它仍然要求我输入密码。我必须通过其他设置才能使其正常工作吗?
我已按照更改权限的说明进行操作:
如果我这样做,下面是结果ssh -v localhost
。
然后它在上述日志之后要求一个 passphase。为什么没有密码就不能登录?
git - Git Remote:错误:致命:协议错误:错误的行长字符:Unab
我设置了一个 git 服务器,现在想从客户端推送我的 repo。我使用git push origin master
并收到此错误消息:
我不知道怎么了。我不知道“Unab”是什么。我试图调整外壳的大小,但它仍然是“Unab”。我找不到此错误消息的解决方案。
我使用“authorized_keys”和 SSH 设置服务器。(我可以使用 SSH 连接到它。)
这似乎是一个git问题?
顺便说一句:服务器设置在 Windows 7 VM 中
ssh - ssh 和 authorized_keys 有问题
我正在从server1 SSH到server2。我生成了id_rsa和id_rsa.pub文件。如果我 ssh 到 mike@server2 它工作正常,但 ssh 到 john@server2 没有密码就无法工作。mike 和 john 主目录都包含“.ssh”,即 chmod 700,该文件夹包含“authorized_keys”,其中仅包含先前生成的 id_rsa.pub 文件的内容(并且是 chmod 600)。两者的内容是一样的。
服务器 1:Linux x86_64 x86_64 x86_64 GNU/Linux
服务器 2:AIX 5.3.0.0 64 位
命令 1,用户 Mike(无需密码即可使用):
ssh -v -n -o StrictHostKeychecking=no -o NumberOfPasswordPrompts=0 mike@server2 echo Hello
~drwx------ 7 mike mike 4096 Jan 19 2011 .
~/.sshdrwx------ 2 mike mike 256 Nov 28 16:39 .ssh
~/.ssh/authorized_keys-rw------- 1 mike mike 823 Apr 06 11:56 .ssh/authorized_keys
命令 2,用户 John(需要密码)
ssh -v -n -o StrictHostKeychecking=no -o NumberOfPasswordPrompts=0 john@server2 echo Hello
~drwx------ 12 john jgroup 4096 Apr 06 23:13 .
~/.sshdrwx------ 2 john jgroup 256 Apr 06 23:56 .ssh
~/.ssh/authorized_keys-rw------- 1 john jgroup 414 Apr 06 11:55 .ssh/authorized_keys
上面命令 2 的 ssh -v 输出:
任何人都知道为什么它会与一个用户而不是另一个用户一起工作(两者都在同一台服务器上)?
ssh - 多个用户编辑授权密钥
我希望有两个用户能够编辑我的 authorised_keys 文件。这可能吗?
我试图将用户添加到原始用户等/组,但这不起作用。
例如 user1:xx:user2
ubuntu-11.10 - 如何将 RSA 密钥添加到 authorized_keys 文件?
我已经创建了一个 RSA 公钥,我想将它添加到authorized_keys
文件中,但是我的 Ubuntu 11.10 机器中没有这样的文件。
如何添加密钥authorized_keys
?
git - 授权密钥文件中的 Gitolite 用户名
我会尽力解释我的情况:
我在 debian 挤压服务器中使用 gitolite,并且有 3 个用户可以访问和使用存储库:
alex@workbox
alex@homebox
katy@workbox
以上是三个 Ubuntu 机器对应的用户名和主机名(Alex 在两个位置工作)。
我做的第一件事是添加alex@workbox
到 gitolite:
- Alex 使用 ssh-keygen 生成了他的 ssh 密钥
- 我将他的 ssh 密钥复制为 alex@workbox.pub 在我本地 gitolite-admin 克隆仓库的“keydir”文件夹中
- 修改了我本地 gitolite-admin 克隆存储库的 conf/gitolite.conf 文件,以便让 alex@workbox RW 访问存储库:
repo project1
RW+ = alex@workbox
- 照常做:
git add .
git commit -m "Added alex@workbox"
git push
当 Alex 尝试克隆 project1 存储库时,出现一个错误,提示用户 " alex
" 的访问被拒绝。
所以,我登录到服务器并打开/var/lib/gitolite/.ssh/authorized_keys
.
文件的第一部分是这样的:
所以我手动替换alex
为alex@workbox
,保存了文件,这次 Alex 能够克隆存储库并毫无问题地使用它。
然后我按照上述步骤添加 Katy,在推送到之后gitolite-admin
,我再次打开authorized_keys
文件,看到 gitolite 将“ user@hostname
”替换为“ user
”。
所以它有alex
而不是alex@workbox
和相同的katy
。
然后我不得不再次手动替换它并保存文件。我看到,对于我为gitolite-admin
repo gitolite 所做的每次推送,都会将其中的每个“ user@hostname
”替换为“ user
”,.ssh/authorized_keys
这样会使用户无法访问存储库。
我该怎么做才能让 gitolite 保持“ user@hostname
”?
是否需要在服务器上进行配置或在我的本地克隆存储库上进行配置更改gitolite-admin
?
linux - 无密码 ssh 登录后检查远程用户的身份?
在无密码 ssh-login 之后,Linux 中是否有任何方法可以检索登录的远程用户的身份?
我想在登录脚本中采取一些不同的操作,这取决于我从哪个远程主机/用户 ID 进行 ssh 登录。
java - 使用 localhost 时的网站隐式身份验证 (SSO)
这可能是一个模糊的问题(抱歉),但我希望能够在没有用户名/密码的情况下验证我的 Web 应用程序。理想情况下,它类似于使用私钥和公钥组合的 SSH“无密码登录”。
为了澄清这是我的用例
- 我有一个标准的 Java EE webapp,它在 Tomcat 上运行“表单”登录。身份验证遵循操作系统。因此,如果 webapp 中的 user1 通过 ssh-ed 进入主机,则他们与 user1 的用户相同。
- 我有一个类似于 SSH 的命令行界面(即“cli user@host”,然后要求输入密码)
- 如果我可以显示用户是受信任的,我希望 CLI 自动登录。
我该怎么做呢?
我的一个想法是使用 ssh-keygen 方法(即无密码 ssh)。我不确定确切的细节,但我猜它会像这样工作。
- 在 CLI 登录中,我将使用本地私钥(即 ~/.ssh/id_dsa)来加密一些已知字符串。
- 用登录名发布
- 服务器通过它的每个“authorized_keys”(可能不是 ~/.ssh/ 中的那个,而是我的应用程序中的一个)并尝试解密字符串。如果它等于预期的字符串,那么 SUCCESS
注释?