相关疑难解决方法(0)

无法打开与身份验证代理的连接

我遇到了这个错误:

$ git push heroku master
Warning: Permanently added the RSA host key for IP address '50.19.85.132' to the list of known hosts.
!  Your key with fingerprint b7:fd:15:25:02:8e:5f:06:4f:1c:af:f3:f0:c3:c2:65 is not authorized to access bitstarter.
Run Code Online (Sandbox Code Playgroud)

我试图添加密钥,我在下面收到此错误:

$ ssh-add ~/.ssh/id_rsa.pub
Could not open a connection to your authentication agent.
Run Code Online (Sandbox Code Playgroud)

ssh ssh-agent

1473
推荐指数
29
解决办法
114万
查看次数

在一个客户端上使用多个SSH私钥的最佳方法

我想使用多个私钥连接到不同的服务器或同一服务器的不同部分(我的用途是服务器的系统管理,Git的管理,以及同一服务器内的正常Git使用).我试过简单地将id_rsa文件中的密钥堆叠起来无济于事.

显然,一种直接的方法是使用该命令

ssh -i <key location> login@server.example.com 
Run Code Online (Sandbox Code Playgroud)

这非常麻烦.

关于如何更轻松地做这件事的任何建议?

ssh openssh ssh-keys

816
推荐指数
12
解决办法
40万
查看次数

Git一直提示我输入密码

我已经使用Git一段时间了,但是不断要求输入密码开始让我感到困惑.

我正在使用OSX和Github,我按照GitHub的Set Up Git页面的指示设置了Git和我的SSH密钥 .我还在我的Mac OSX钥匙串中添加了github SSH密钥,如GitHub的SSH密钥密码页面所述.我的公钥是在Git注册的.

不过,每次我尝试git pull,我都要输入我的用户名和密码.我需要为此设置除SSH密钥以外的其他东西吗?

git github

619
推荐指数
17
解决办法
32万
查看次数

在shell脚本中使用$()而不是反引号有什么好处?

有两种方法可以捕获命令行的输出bash:

  1. Legacy Bourne shell反手``:

     var=`command`
    
    Run Code Online (Sandbox Code Playgroud)
  2. $() 语法(据我所知,特定于Bash,或至少不受原始Bourne等非POSIX旧shell支持)

     var=$(command)
    
    Run Code Online (Sandbox Code Playgroud)

与反引号相比,使用第二种语法有什么好处吗?或两者完全相同?

syntax sh backticks

149
推荐指数
8
解决办法
6万
查看次数

如何为文件中的动态库存提取的服务器定义ssh私钥

在为ssh私钥文件编写ansible playbook时遇到了一个配置问题.

我们知道,我们可以在静态库存服务器的ansible hosts文件中定义与主机服务器,ip和相关ssh私钥的组合.

但我不知道如何使用动态库存服务器来定义它.

例如:

---
- hosts: tag_Name_server1
  gather_facts: no
  roles:
    - role1

- hosts: tag_Name_server2
  gather_facts: no
  roles:
    - roles2
Run Code Online (Sandbox Code Playgroud)

下面的命令用于调用该剧本:

ansible-playbook test.yml -i ec2.py --private-key ~/.ssh/SSHKEY.pem
Run Code Online (Sandbox Code Playgroud)

我的问题是:

  1. 如何在ansible文件中定义〜/ .ssh/SSHKEY.pem,而不是在命令行中定义
  2. 我想playbook中可能有一个参数,比如"gather_facts"来定义哪个私钥应该用于上面的主机,但看起来没有这样的参数?
  3. 如果无法在文件中定义私钥,如果不同的密钥文件将用于一个剧本的不同动态获取服务器,那么应​​该在命令行中定义什么?

谢谢您的意见

ansible ansible-playbook

52
推荐指数
5
解决办法
10万
查看次数

如何从文件中生成ssh-add读密码?

我正在尝试添加密钥ssh-agent并希望ssh-add从文件中读取密码.怎么可能?

如何从shell脚本自动执行此过程?

ssh ssh-agent

21
推荐指数
4
解决办法
2万
查看次数

我需要在每次启动时重新运行 eval(ssh-agent) 和 ssh-add

我想知道我是否可以获得一些帮助。我最近重新安装了操作系统,但遇到了一个以前从未遇到过的奇怪问题。我正在按照Github 步骤添加 ssh 代理

基本上,每次登录时我都需要运行

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_personal
Run Code Online (Sandbox Code Playgroud)

当我重新启动计算机时。

当我尝试跑步时,git clone X我得到了

Cloning into 'X'...
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
Run Code Online (Sandbox Code Playgroud)

但在我运行上述两个命令后,我可以很好地克隆

注意:Gitlab 也存在问题。抱歉,我应该明确的

git ssh github ssh-agent

11
推荐指数
2
解决办法
2万
查看次数

Capistrano 在 git:check 上部署失败 - 权限被拒绝(公钥)

本地操作系统:Windows 10 Pro(使用 Git Bash 作为我的终端)

暂存服务器操作系统:Ubuntu 16.04 LTS

我一直在努力让基本的 Capistrano 部署在我的登台服务器上工作。我按照本指南设置了 Capistrano。

git:check由于据称无权访问我在 GitLab上的存储库,部署过程总是在舞台上失败。我确信我的 SSH 代理转发工作正常,因为我能够通过 SSH 连接到我的服务器并使用我的 SSH 密钥访问 GitLab。SSH 密钥未存储在我服务器上的任何位置:

$ ssh deploy@myserver.com

deploy@MyServer:~$ ssh -T git@gitlab.com
debug1: client_input_channel_open: ctype auth-agent@openssh.com rchan 2 win 65536 max 16384
debug1: channel 1: new [authentication agent connection]
debug1: confirm auth-agent@openssh.com
Welcome to GitLab, Alexander!debug1: channel 1: FORCE input drain
Run Code Online (Sandbox Code Playgroud)

到目前为止,关于这个问题的所有问题都没有对我有用。

这是我的部署文件:

部署文件

set :application, "myapp"
set :branch, "master"
set :repo_url, "git@gitlab.com:MyApp/myapp.git"

# Defaults to false
# Skip …
Run Code Online (Sandbox Code Playgroud)

git ruby-on-rails ssh-agent capistrano3

8
推荐指数
2
解决办法
4932
查看次数

git ssh 身份验证失败,ssh_askpass: posix_spawn: Unknown error

我在 Windows 10 x64 上使用设置,我通过 scoop 安装和管理 git,而不是自己下载和执行安装程序。通过PowerShell,我跑了

scoop install git
scoop install openssh
[environment]::setenvironmentvariable('GIT_SSH', (resolve-path (scoop which ssh)), 'USER')
Run Code Online (Sandbox Code Playgroud)

但是,现在当我尝试运行的命令在Git的Bash的喜欢

git clone git@example.org:vendor/repository.git
Run Code Online (Sandbox Code Playgroud)

或者一个简单的

git push/pull
Run Code Online (Sandbox Code Playgroud)

我只得到

CreateProcessW failed error:193
ssh_askpass: posix_spawn: Unknown error
Run Code Online (Sandbox Code Playgroud)

而不是 Git Bash 询问我的 SSH 密钥密码。

我在许多其他 Windows 10 x64 上使用相同的设置(通过 scoop 安装的 git)并且那里没有出现问题。所以我不确定这个问题出了什么问题。我以前在同一台机器上安装了 git 而不使用 scoop,并且 Git Bash 运行良好。在通过scoop重新安装它之前,我完全卸载了 git(并且还重新启动了机器,只是为了确定)。

如果相关,SSH_ASKPASS环境变量包含以下内容:

$ echo ${SSH_ASKPASS}
/mingw64/libexec/git-core/git-gui--askpass
Run Code Online (Sandbox Code Playgroud)

不确定那个文件夹指的是什么(大概是Git Bash内部的东西?),因为它在我的机器上显然不存在。

更新

当使用git-with-openssh而不是单独gitopenssh单独使用它时。但是,我没有在我的其他机器上使用它,所以我仍然想知道为什么它在这里不起作用。

windows git git-bash scoop-installer

8
推荐指数
1
解决办法
5332
查看次数

如何制作一个脚本来执行git pull?

git pulldev/staging/production服务器上执行通常的做法.我经常这样做; 我在运行linux的生产服务器上每天执行git pull几乎100次.

我想,是时候制作一个脚本来改进它.


pull.sh将执行这3个命令

  • git pull
  • 输入我的密码(提示时)
  • 服务nginx重新加载

我试过在这里创建我的pull.sh

#!/bin/bash

function pull {
  git pull
  password
  service nginx reload
}


pull ;
Run Code Online (Sandbox Code Playgroud)

结果

运行我的脚本后,我仍然提示输入密码.

在此输入图像描述


任何提示/帮助/建议将不胜感激!

linux git bash shell

3
推荐指数
1
解决办法
7630
查看次数