모든 ssh-add 키를 끄는 방법은 무엇입니까?

모든 ssh-add 키를 끄는 방법은 무엇입니까?

서버에 SSH로 연결할 때마다 동일한 SSH 키를 계속해서 추가해야 합니다. 그래서 저는 이 작업을 수행하는 스크립트를 가지고 있으며 한동안 잘 작동했습니다. 그러나 이제 서버는 다음과 같이 불평합니다.

- You have too many files are open.  Close some files or increase your per-process descriptor limit.
while executing
"spawn bash -c "ssh-add [...some key]""

전체 스크립트:

#!/usr/bin/expect -f                                                            

set key [lindex $argv 0]                                                        
set pass [lindex $argv 1]   

spawn bash -c "ssh-add /path/to/.ssh/$key"                               
expect "passphrase"                                                             
send "$pass\n"                                                                  
interact 

나는 무엇을 해야할지 충분히 모르고 무엇을 해야할지 spawn모릅니다 . ssh-add을 실행하면 ps -ebash 프로세스만 있습니다. 아마도 공유 호스팅 서버이기 때문일까요? spawn제대로 사용 하지 못하고 있는 것 같아요 . 이 문제를 해결하고 앞으로 이 문제를 방지하려면 어떻게 해야 합니까?

답변1

먼저 열린 파일 제한을 확인하세요.

$ ulimit -n
65536

값이 너무 작으면 제한을 늘리면 문제가 해결됩니다. 제한이 다음과 같다면 65536스크립트가 뭔가 수상한 일을 하고 있는 것일 수 있습니다.

그런 다음 현재 열려 있는 파일을 확인합니다.

lsof -u your_username

그런 다음 제한에 도달하기 위해 스크립트가 열어야 하는 파일 수를 계산할 수 있습니다.

lsof -u your_username | wc -l

그런데. SSH 키를 수동으로 추가하는 것보다 사용하기가 더 쉽지 않나요 ForwardAgent?

관련 정보