ssh-agent的作用

明明在github上配置了ssh公钥,拉代码时却报错:
sign_and_send_pubkey: signing failed: agent refused operation

解决方法:在~/.zshrc中添加以下脚本

#!/bin/bash -e
SSH_ENV="$HOME/.ssh/environment" 

function start_agent { 
    echo "Initialising new SSH agent..." 
    /usr/bin/ssh-agent | sed 's/^echo/#echo/' > "${SSH_ENV}" 
    echo succeeded 
    chmod 600 "${SSH_ENV}" 
    . "${SSH_ENV}" > /dev/null 
    /usr/bin/ssh-add; 
} 

# Source SSH settings, if applicable 

if [ -f "${SSH_ENV}" ]; then 
    . "${SSH_ENV}" > /dev/null 
    #ps ${SSH_AGENT_PID} doesn’t work under cywgin 
    ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || { 
     start_agent; 
    } 
else 
    start_agent; 
fi 

ssh-agent是linux 系统上的一个程序,这个程序可以控制和保存公钥身份验证所使用的私钥程序,听起来好拗口.
当 ssh-add 把私钥交给 ssh-agent 来管理时,其他程序需要身份验证的时候都可以申请交给 ssh-agent 来完成整个认证过程.

所以,到这里我们应该大体了解 ssh-agent : 它就是一个帮助我们验证身份的程序.

猜你喜欢

转载自www.cnblogs.com/weiyinfu/p/12006408.html