Windows에서 Git Bash를 시작할 때 SSH 에이전트 실행
저는 git bash를 사용하고 있습니다.사용해야 합니다.
eval `ssh-agent.exe`
ssh-add /my/ssh/location/
매번 새로운 Git Bash를 시작할 때마다.
ssh 에이전트를 영구적으로 설정하는 방법이 있습니까?아니면 윈도에서 ssh 키를 관리하는 좋은 방법이 있나요?
새로 온 사람인데, 자세한 튜토리얼을 부탁해요, 고마워요!
: 2013년 ★★★★git bash
스크립트를 할 수 .~/.profile
★★★★★★★★★★★★★★★★★」~/.bashrc
(통상은 로 설정되어 있습니다).이 세션을 자동적으로 기동하기 위해서,ssh-agent
.
파일이 존재하지 않는 경우는, 작성하기만 하면 됩니다.
이것이 GitHub이 "SSH 키 암호 사용"에서 설명한 것입니다.
이 문서의 "Windows용 Git에서 ssh-agent 자동 부팅" 섹션에는 에이전트가 실행 중인지 여부를 확인하는 강력한 스크립트가 있습니다.
아래는 단편적인 내용일 뿐, 완전한 솔루션에 대해서는 GitHub 기사를 참조해 주세요.
# This is just a snippet. See the article above.
if ! agent_is_running; then
agent_start
ssh-add
elif ! agent_has_keys; then
ssh-add
fi
기타 자원:
"Getting ssh-agent to windows command shell"은 유사한 스크립트를 가지고 있지만, 저는 위의 GitHub 기사를 주로 참조합니다.이 문서는 보다 강력하고 최신입니다.
hardsetting
는 코멘트에 추가합니다(2018년):
셸을 열지 않고 처음 필요할 때 패스프레이즈를 입력하는 경우 가장 깔끔한 방법은 다음과 같습니다.
- 의 삭제
ssh-add
.bash_profile
, 그리고.- "timeout"의
AddKeysToAgent yes
" " " " ".ssh/config
파일('요청 시 자동으로 키를 추가하는 방법' 참조).실행 중인 것을 하지 않아도
ssh-add
.
Tao는 코멘트에 다음과 같이 덧붙입니다(2022년).
(예를 들어) 다른 답변에서 @JigneshGohel이 언급한 보다 표준적인 Linux 스크립트가 Windows에서 이 스크립트가 특히 적합한 이유를 알아둘 필요가 있습니다.
하지 않음
SSH_AGENT_PID
사이그윈이 되다
할 수 , "msys2"에서도 할 수 있습니다.git bash
,SSH_AUTH_SOCK
어느 환경에서든 경로에 도달할 수 있습니다.
수 때문에 PID PID를 리셋합니다.ssh-agent
각 스위치의 프로세스
추신: 이 순서는 Windows 10 Linux 서브시스템에서 열린 Bash 셸의 컨텍스트이며 Windows에서 생성된SSH 키와 Windows Ubuntu의 Bash의 Sym 링크에 대해서는 언급하지 않았습니다.
1) .bashrc에 다음 내용을 추가하여 .bashrc를 업데이트합니다.
# Set up ssh-agent
SSH_ENV="$HOME/.ssh/environment"
function start_agent {
echo "Initializing new SSH agent..."
touch $SSH_ENV
chmod 600 "${SSH_ENV}"
/usr/bin/ssh-agent | sed 's/^echo/#echo/' >> "${SSH_ENV}"
. "${SSH_ENV}" > /dev/null
/usr/bin/ssh-add
}
# Source SSH settings, if applicable
if [ -f "${SSH_ENV}" ]; then
. "${SSH_ENV}" > /dev/null
kill -0 $SSH_AGENT_PID 2>/dev/null || {
start_agent
}
else
start_agent
fi
2) 을 해 주세요.$ source ~/.bashrc
설정을 새로고침합니다.
위의 순서는 https://github.com/abergs/ubuntuonwindows#2-start-an-bash-ssh-agent-on-launch 에서 실시되고 있습니다.
는, SSH 설정 파일을 작성합니다.3 ) SSH 설정 파일, SSH 설정 하지 않는 경우).합니다..ssh$ touch config
에 4를 ~/.ssh/config
Host github.com-<YOUR_GITHUB_USERNAME>
HostName github.com
User git
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_work_gmail # path to your private key
AddKeysToAgent yes
Host csexperimental.abc.com
IdentityFile ~/.ssh/id_work_gmail # path to your private key
AddKeysToAgent yes
<More hosts and github configs can be added in similar manner mentioned above>
합니다(명령어 5). SSH 에이전트에 SSH 키를 추가합니다.$ ssh-add ~/.ssh/id_work_gmail
그런 다음 ssh를 사용하여 github 계정 또는 원격 호스트에 연결할 수 있습니다.「 」 「 」 、 「 」 、 「 」
$ ssh github.com-<YOUR_GITHUB_USERNAME>
또는
$ ssh <USER>@csexperimental.abc.com
SSH 에이전트에 대한 이 키 추가는 한 번만 수행해야 합니다.
6) 이제 Windows Linux 서브시스템에서 Bash 세션을 로그아웃합니다.즉, 모든 Bash 콘솔을 종료하고 새 콘솔을 다시 시작하여 SSH 구성 파일에 구성된 Github 호스트 또는 기타 호스트에 SSH를 시도하면 별도의 절차 없이 작동합니다.
주의:
Bad owner or permissions on ~/.ssh/config
명령어를 합니다.chmod 600 ~/.ssh/config
. 레퍼런스 : https://serverfault.com/a/253314/98910위의 절차를 수행하려면 OpenSSH v7.2 이후가 필요합니다.오래된 것을 사용하고 있는 경우는, https://stackoverflow.com/a/41555393/936494 에 기재되어 있는 순서에 따라서 업그레이드할 수 있습니다.
Windows 10 Linux Subsystem SSH-agent의 주요 문제에서도 동일한 세부 정보를 확인할 수 있습니다.
감사해요.
수 것이 에서 GitHub repo의 아래쪽에 있는 GitHub repo는 GitHub repo는 GitHub repo를 사용합니다.C:\Users\tiago\.ssh
되어 있는 곳 이 에 config라는 합니다( config ) 。
Host github.com
HostName github.com
User your_user_name
IdentityFile ~/.ssh/your_file_name
그런 다음 Git Bash를 열기만 하면 ssh-agent를 수동으로 시작하고 키를 추가할 필요 없이 푸시할 수 있습니다.
나는 이것을 달성하기 위한 가장 쉬운 방법을 SSH 에이전트와 plink로 Peates를 이용하는 것을 발견했다.
리모트로 사용되는 호스트명에 대해서, 퍼티 세션을 설정할 필요가 있습니다.
플링크도 필요합니다.putty와 같은 사이트에서 다운로드 할 수 있는 exe
그리고 넌 열쇠를 장전하고 미인대회를 뛰어야 해스타트업 폴더에 로그인 시 SSH 키를 로드하는 미인대회 바로가기가 있습니다.
git-scm을 설치할 때 OpenSSH가 아닌 turtle/plink를 사용하도록 지정할 수 있습니다.
그 결과 원하는 시간에 git-bash를 열 수 있고 패스프레이즈에 대한 도전 없이 밀고 당길 수 있습니다.
putty 세션과 WinSCP 세션에서도 키가 로딩되어 있는 경우는 동일합니다.그것은 삶을 훨씬 더 쉽게(그리고 안전하게) 만듭니다.
저는 PC를 너무 잘 다루어서 확실한 것을 놓쳤기 때문에 최선의 답변에 따라서는 이 작업을 수행할 수 없었습니다.참고로 저처럼 어려운 사람에게 도움이 될 수 있는 경우, 드디어 효과가 있었던 것은 여기 링크 중 하나였습니다(답변 참조).이것은 단순히 다음 내용을 제 컴퓨터에 붙이는 것을 포함했습니다..bash_profile
:
env=~/.ssh/agent.env
agent_load_env () { test -f "$env" && . "$env" >| /dev/null ; }
agent_start () {
(umask 077; ssh-agent >| "$env")
. "$env" >| /dev/null ; }
agent_load_env
# agent_run_state: 0=agent running w/ key; 1=agent w/o key; 2= agent not running
agent_run_state=$(ssh-add -l >| /dev/null 2>&1; echo $?)
if [ ! "$SSH_AUTH_SOCK" ] || [ $agent_run_state = 2 ]; then
agent_start
ssh-add
elif [ "$SSH_AUTH_SOCK" ] && [ $agent_run_state = 1 ]; then
ssh-add
fi
unset env
뭔가 이상한 설정이 되어 있는 것 같습니다만, 이 설정을 제 컴퓨터에 추가했을 때는 성공하지 못했습니다..profile
또는.bashrc
또 다른 진짜 과제는 이 컴퓨터의 관리자가 아니기 때문에 IT부문의 승인을 받지 않으면 환경변수를 변경할 수 없다는 것입니다.따라서 이 솔루션은 접속할 수 없는 사용자를 위한 솔루션입니다.
git bash를 열었을 때 ssh 비밀번호를 입력하도록 요구받으면 동작합니다.할렐루야, 드디어 뭔가 먹혔어
이 파일을 ~/.bashrc(또는 여기서 source'd를 취득한 파일)에 넣으면 셸별로 불필요하게 여러 번 실행되지 않습니다.
if [ -z "$SSH_AGENT_PID" ]; then
eval `ssh-agent -s`
fi
그런 다음 ~/.ssh/config에 "AddKeysToAgent yes"를 추가합니다.
Host *
AddKeysToAgent yes
ssh는 정상적으로 서버(또는 git pull)에 접속하여 세션당 패스워드/패스프레이즈를 1회만 입력하도록 요구됩니다.
Windows에서 퍼티를 사용하는 것을 좋아하지 않기 때문에 매우 간단한 유틸리티 ssh-agent-wrapper를 만들었습니다.그러면 .ssh 폴더가 스캔되고 에이전트에 모든 키가 추가됩니다.Windows 스타트업 폴더에 저장하기만 하면 동작합니다.
전제 조건:
- 경로의 ssh-agent
- 경로에서 shh-add-in-path(git 설치 시 "RED" 옵션 선택)
- 개인 키는 %USER PROFILE%/.ssh 폴더에 있습니다.
- 개인 키는 id로 시작합니다(예: id_private).
~ 디렉토리에 새 .bashrc 파일을 만듭니다.
여기서 bash를 시작할 때마다 실행할 명령어를 넣을 수 있습니다.
스크립트를 작성하고 git 저장소를 만들었습니다.이것에 의해, 이 문제를 해결할 수 있습니다.https://github.com/Cazaimi/boot-github-shell-win
에 의해,열마다, 가 readme 에 됩니다.이것에 의해, 새로운 창이나 탭을 열 때마다, 개인 키가 다음의 장소에 추가됩니다.ssh-agent
리모트 git 저장소로 작업하는 경우, 이것에 대해 걱정할 필요가 없습니다.
sh, bash 등의 경우:
# ~/.profile
if ! pgrep -q -U `whoami` -x 'ssh-agent'; then ssh-agent -s > ~/.ssh-agent.sh; fi
. ~/.ssh-agent.sh
csh, tcsh 등의 경우:
# ~/.schrc
sh -c 'if ! pgrep -q -U `whoami` -x 'ssh-agent'; then ssh-agent -c > ~/.ssh-agent.tcsh; fi'
eval `cat ~/.ssh-agent.tcsh`
언급URL : https://stackoverflow.com/questions/18404272/running-ssh-agent-when-starting-git-bash-on-windows
'UFO ET IT' 카테고리의 다른 글
PowerShell 명령줄에서 윈도우즈 버전을 찾는 방법 (0) | 2023.04.08 |
---|---|
프로세스별 CPU 및 메모리 사용량 추적 (0) | 2023.04.08 |
R 스크립트 스케줄링 (0) | 2023.04.08 |
다른 스크립트를 포함하는 가장 좋은 방법은 무엇입니까? (0) | 2023.04.08 |
변수가 Bash의 숫자인지 테스트하려면 어떻게 해야 합니까? (0) | 2023.04.08 |