우선, 이것이 매우 명백하고 사소한 질문이었다면 사과드립니다. 저는 아직 Linux/Unix에 대해 자세히 배우고 있는 중입니다.
로그인하려면 SSH와 개인 키를 통한 액세스가 필요한 일부 서버를 사용합니다. 따라서 명령은 다음과 같습니다.
ssh -i /path/to/key.pem [email protected]
나는 내 자신의 호출을 사용 access
하고 내가 로그인하는 서버를 제어하기 위해 뒤에 있는 매개 변수에 대한 기본 스위치 문만 가질 수 있는 bash 스크립트를 만들었습니다. 예를 들어, server1에 로그인하려면 access server1
적절한 명령이 실행됩니다.ssh
질문
전화가 ssh
끊기고 빈 터미널만 남았습니다. SIGINT
( Ctrl+ C)를 허용하지 않으며 사용하려면 터미널을 종료했다가 다시 열어야 합니다.
내가 이해한 바에 따르면 이는 개인 키에 대한 권한 문제일 수 있습니다. 현재 권한은 입니다 600
. 변경하면 644
권한이 너무 열려 있다는 오류가 발생하여 ssh
시도가 종료됩니다. 어떤 제안이 있으십니까?
답변1
이렇게 하려면
ssh_config
bash 스크립트와 같은 hara-kiri를 만들지 않고도 호스트 별칭과 키를 지정하고 저장할 수 있습니다. 기본적으로~/.ssh/config
다음 형식으로 저장 됩니다 .Host host1 Hostname 000.000.000.000 User user IdentityFile /path/to/key.pem
그런 다음 간단히 전화하면됩니다.
ssh host1
도착하다, 얻다
000.000.000.000
네가 정말로 되고 싶다면효과적인그리고 더 짧은 단축키를 사용하면
alias
bash 스크립트보다 bash가 더 적합합니다.alias access="ssh -i /path/to/key.pem [email protected]"
Bash 스크립트를 실제로 사용하려면
-tt
다음 옵션을 사용하여 ssh가 원격 서버에 TTY를 할당하도록 강제해야 합니다.ssh -tti /path/to/key.pem [email protected]
ssh
더 많은 팁을 보려면 및 매뉴얼 페이지를 찾아보세요 ssh_config
.
답변2
나는 일반적으로 서버에서(가상화를 사용한다고 가정하고 콘솔을 통해) 비밀번호 인증을 제공한 다음 ssh-copy-id soandso@server
키 기반 인증을 제공합니다. 대부분의 경우 컴퓨터의 공개 키를 사용하여 원격 서버의 개인 키에 대해 인증합니다.
공개 키 표준 권한은 있어야 하지만 내가 아는 한 644
개인 키는 그래야 합니다. 700
문제가 공개 키 권한이 아닌 것이 확실합니까?
두 가지 사항을 확인하는 것이 좋습니다. 먼저 위에서 수행한 SSH 연결 문자열을 시도한 다음 -v 또는 -vvv를 옵션으로 추가하세요. 이를 통해 문제가 어디에 있는지 명확하게 알 수 있습니다. 둘째, /etc/ssh/sshd_config
서버의 sshd 구성 파일( )을 확인하고 사용하려는 연결 프로토콜이 활성화되어 있는지 확인하세요. 이는 다음 두 줄을 yes로 설정하는 것만큼 간단할 수 있습니다.
RSAAuthentication yes PubkeyAuthentication yes
행운을 빌어요!