저는 CentOS 7.5 시스템을 사용하고 있으며 원격 서버에 대한 SSH를 위해 공개 키 인증을 설정했습니다. 일반적으로 첫 번째 서버로 ssh를 실행하면 키 잠금을 해제하기 위해 비밀번호를 묻는 GNOME 그래픽 프롬프트가 표시되므로 GNOME 세션 중에는 다시 묻지 않습니다.
그러나 때로는 터미널에서 직접 비밀번호를 묻는 메시지가 표시됩니다.
Enter passphrase for key '/home/dr01/.ssh/id_rsa':
서버에 접속할 때마다 비밀번호를 입력해야 하기 때문에 귀찮습니다. 따라서 이러한 경우에는 컴퓨터를 재부팅하면 됩니다.
그놈 키링 데몬은 /usr/bin/gnome-keyring-daemon --start --components=pkcs11
.
다시 시작해도 효과가 없습니다.
[dr01@centos7 ~]$ /usr/bin/gnome-keyring-daemon -r
** Message: Replacing daemon, using directory: /run/user/1001/keyring
GNOME_KEYRING_CONTROL=/run/user/1001/keyring
SSH_AUTH_SOCK=/run/user/1001/keyring/ssh
그 후에도 명령줄에서 개인 키의 비밀번호를 묻는 메시지가 계속 표시됩니다.
나도 다시 시작해봤는데
/usr/bin/gnome-keyring-daemon -r --unlock
그러나 그것은 중단됩니다. 이것을 인쇄하세요 strace
:
(...)
read(3, "\335{\232\316.\353\335\22\16\277\321\f\326A\334\272\2\342\227\246V`\262\265\300\213@\273>%\303\2"..., 120) = 120
getrusage(RUSAGE_SELF, {ru_utime={0, 2440}, ru_stime={0, 7321}, ...}) = 0
times({tms_utime=0, tms_stime=0, tms_cutime=0, tms_cstime=0}) = 429541253
futex(0x7f0889a5e548, FUTEX_WAKE_PRIVATE, 2147483647) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f088aa6a000
mmap(NULL, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f088aa66000
mlock(0x7f088aa66000, 16384) = 0
read(0,
그 후에는 동결됩니다 read(0,
.
이 문제를 어떻게 해결할 수 있나요?
답변1
터미널에 비밀번호 프롬프트가 나타나면 SSH_AUTH_SOCK
환경 변수가 ssh
해당 컨텍스트의 명령에 전달되지 않았음을 의미할 수 있습니다.
GNOME Keyring Daemon을 SSH 에이전트(또는 실제로 모든 SSH 에이전트)로 사용할 때 이 SSH_AUTH_SOCK
변수는 SSH 에이전트(귀하의 경우 GNOME Keyring Daemon)가 생성한 UNIX 소켓을 가리켜야 합니다. 또는 sshd
SSH 연결을 통해 작업하는 경우 프록시 연결 전달이 활성화됩니다.
즉, 사용자 환경이 재설정되는 일을 했을 수도 있습니다. 이미 사용했는데 저장이 sudo
허용된 SSH_AUTH_SOCK
환경 변수 목록에 없을 수도 있습니다. sudo
아니면 다른 프로그램의 쉘 이스케이프 기능을 실행하고 있는데 해당 프로그램이 SSH_AUTH_SOCK
실행 중인 쉘에 변수를 전달하지 않습니까?