터미널에 SSH 자격 증명을 저장하는 방법


33

저는 MacBook을 처음 사용하고 있으며 El Capitan을 운영하고 있습니다.

컴퓨터 사용을 PC에서 MacBook으로 마이그레이션하고 있습니다. 저는 PC에서 오랫동안 PuTTY와 SuperPuTTY를 사용하고 있습니다.

PC의 SuperPuTTY에서했던 것처럼 로그인 자격 증명을 만들어 MacBook Terminal의 웹 서버에 저장하려고합니다.

Mac 터미널에 웹 서버 로그인 자격 증명을 저장할 수 있습니까?

나의 전반적인 목표는 다음과 같습니다.

Mac 터미널에 다음 명령 줄 로그인 자격 증명을 저장 한 다음 일종의 단축 코드를 사용하여 터미널을 통해 웹 서버에 연결하는 쉬운 방법이 있는지 알고 싶습니다.

ssh -p 2200 root@123.456.789.012
Password: ****************************************************************

5 개의 다른 웹 서버를 관리하고 연결하므로 짧고 빠른 연결 방법으로 로그인 자격 증명을 정렬하고 구성하면 시간을 크게 절약 할 수 있습니다. 특히 비밀번호가 암호로 된 64 자 문자열이기 때문입니다.


Tammy의 편집 버전 3이 명확성과 유용성 측면에서 이것을 공원 밖으로 떨어 뜨 렸기 때문에 의견을 퍼뜨 렸습니다. 잘 했어!
bmike

답변:


50

공개 키를 원격 시스템에 복사 할 수 있습니다. 공개 키 인증이 활성화되어 있고 공개 키가 원격 시스템에 존재 ssh하는 한 암호를 제공하지 않고도 시스템에 액세스 할 수 있습니다 .

먼저 다음과 같이 공개 / 개인 키 쌍을 생성해야합니다.

ssh-keygen -t rsa

지시를 따릅니다. 암호로 키를 보호 할 것인지 물으면 예라고 말합니다. 키를 암호로 보호하지 않는 것은 좋지 않습니다. 가끔 암호를 한 번만 입력하는 방법을 보여 드리겠습니다.

키 쌍이 이미 있으면 위의 단계를 건너 뛸 수 있습니다.

이제 ssh 키가 Mac에 존재한다고 가정하면 다음 ~/.ssh/id_rsa.pub을 실행하여 원격 컴퓨터에 설치할 수 있습니다.

cat ~/.ssh/id_rsa.pub | ssh user@123.45.56.78 "mkdir -p ~/.ssh && cat >>  ~/.ssh/authorized_keys"

위에서 인용 한 특정 서버 예제의 경우 명령은 다음과 같습니다.

cat ~/.ssh/id_rsa.pub | ssh -p 2200 root@123.456.789.012 "mkdir -p ~/.ssh && cat >>  ~/.ssh/authorized_keys"

root@123.456.789.012이 복사를 수행 하려면 비밀번호를 입력 해야하지만 마지막으로 비밀번호를 입력 해야합니다. 원격 서버 sshd가 공개-개인 키 인증을 수행하도록 설정 되었다고 가정하면 상자에 ssh를 입력하면 root계정 암호를 묻지 말고 대신 암호를 묻습니다 . 항상 입력 할 필요가없는 것을 만드는 방법에 대해 읽으십시오.

암호 대신 키를 사용하여 ssh하려는 모든 시스템에 대해 위의 과정을 반복하십시오.

참고하시기 바랍니다 누군가 당신의 보류 얻을 ~/.ssh/id_rsa파일로이 기계에 ssh를 수있는 root원격 시스템의 암호를 제공하지 않고. 키 파일을 암호로 보호하면 키 파일을 사용하기 위해 해당 키의 암호를 알아야합니다. 파일이 안전한지 확인하십시오. Mac에서 디스크 암호화를 사용하고 파일 및 ~/.ssh/디렉토리 에 대한 권한을 엄격하게 유지하십시오 .

매번 암호를 입력 할 필요없이 키를보다 쉽게 ​​사용할 수 있도록 OS X은 ssh-agent컴퓨터의 백그라운드에서 프로세스를 실행합니다 . 이 에이전트는 처음 사용할 때 키 쌍을 캐시하므로 비밀번호를 한 번만 입력하면됩니다. Mac을 잠자기 만하고 다시 시작하지 않으면 암호를 입력하지 않아도 오랜 시간이 걸릴 수 있습니다.

다음 ssh-agent을 실행 하여 모든 SSH 키를 사전 캐시 할 수 있습니다 .

ssh-add

이제 여러 계정 비밀번호가 아닌 비밀번호 만 기억하면 됩니다 . 나는 일반적으로 키 비밀번호를 1Password (가맹 없음)로 유지 하여 기억해야 할 비밀번호의 수를 더 단순화합니다. 그런 다음 1Password에서 찾은 다음 Mac에서 재시동 할 때 이상한 시간을 터미널에 잘라 붙여 넣어 달리기 ssh-agent를 다시 시작합니다.

이 질문에서 원격 컴퓨터에 키 복사를 Terminal.app 연결 관리 솔루션과 결합 하면 GUI 연결 경험을 위해 PuTTY에 매우 가까운 것이 있습니다.


서버 측에서 다음을 확인 /etc/ssh/sshd_config하고 확인하십시오.

PubkeyAuthentication yes

구성에서 활성화됩니다 (기본적으로 OpenSSH에서). 다음을 설정할 수도 있습니다.

PasswordAuthentication no

그 동안 암호 기반 인증이 비활성화되고 키가 컴퓨터에 액세스하는 유일한 방법이됩니다.

구성 파일을 변경 한 경우 시스템에서 sshd를 다시 시작해야합니다.


@IamC에게 감사드립니다-이 답변은 훌륭하며 확실히 작동합니다. 나는 내가 찾을 수 있는지 확인하기 위해 오늘 아침에 여기에 맥 채널에 스택 교환 계정을 만든 신속 하고 쉽게 터미널 또는 어떻게 든 맥에 로그인 자격 증명을 저장하는 방법. 그렇게하는 것은 매우 복잡하고 나에게 실용적인 해결책이 아닌 것 같습니다. 이유는 다음과 같습니다. <more>
tammy

<cont.> 여러 웹 서버에 대한 명령 줄 액세스 권한이 있습니다 (모두 5 개). 회사 웹 사이트에 PuTTY를 통한 SSH 액세스가 가능한 데스크탑 PC가 있습니다. 본사 웹 사이트에 PuTTY를 통한 SSH 액세스 가 가능한 대형 랩톱 PC가 있습니다. 여행 및 현장 고객 방문을 위해 MacBook Air를 구입했습니다. 특정 요구에 완벽합니다. PC의 PuTTY와 SuperPuTTY를 통해 서버에 SSH 연결을 쉽게하기를 바랐습니다. <more>
tammy

<cont.> 그러나 공개 인증 키 경로를 통과 할 수는 없습니다. PuTTY가 집과 사무실 PC에서 작동하는 방식을 변경해야하기 때문입니다. Mac을 내 PC처럼 작동시키는 것은 너무 어려워서 Mac에서 연결하기 위해 복사 및 붙여 넣기 프로세스를 고수해야한다고 생각합니다. 도와 주셔서 감사합니다. 프로세스를 단순화하도록 도와 주셔서 감사합니다.
tammy

2
@tammy 당신은 PasswordAuthentication yes서버 측에서 떠날 수 있으며 PuTTY는 항상 Windows 컴퓨터에서와 같이 계속 작동합니다. 이것은 하나 또는 시나리오가 아닙니다. 서버에서 두 가지 유형의 인증을 모두 허용 할 수 있습니다. PuTTY는이 FWIW와 같은 공개 / 개인 키 인증도 지원합니다. ~/.ssh/id_rsa*파일을 Windows 시스템으로 복사하여 서버 인증을 위해 PuTTY로 가져올 수 있습니다. PuTTY ssh는 OS X에서 와 동일한 OpenSSH 라이브러리를 사용하여 연결합니다
.

1
ssh-addSierra (OS X 10.12)에서도 작동합니다. 감사
SaxDaddy

4

sshpass를 사용하여 비밀번호를 저장할 수 있으며 모범 사례 (보안 문제)가 아닐 때마다 삽입 할 필요는 없습니다.

https://gist.github.com/arunoda/7790979 에서 mac OS x 설치 지침을 따르십시오.

sshpass가 설치되어있을 때 sshpass -p "YOUR_PASSWORD" ssh -o StrictHostKeyChecking=no root@123.456.789.012:2200

5 대의 웹 서버에 대해 동일한 작업을 수행하며 매번 비밀번호를 삽입 할 필요는 없습니다.


1
나는 이것에 너무 바보 같은 느낌이 든다. PuTTY와 SuperPuTTY가있는 PC를 사용하면 기본 명령 줄에서 너무 멀었습니다. 전반적인 목표를 가지고 OQ를 편집했습니다. 보세요
tammy

root@123.456.789.012에 연결할 수 있고 프로세스를 자동화하고 싶다고 가정합니다. 당신은 기본적으로 매번 입력하지 않으 ssh -p 2200 root@123.456.789.012과를 Password: **********************?
enzo

ssh-copy-id표준 OS X 배포판의 일부가 아닙니다.
Ian C.

@IanC. 나는 내가 양조와 함께 그것을 설치하는 것을 잊었다 고 생각합니다. 내 답변을 수정합니다
enzo

당신은 @maetsoh를 얻었습니다-그것은 내가 여기서 달성하고 싶은 것입니다.
tammy

1

공개 / 개인 키 항목 외에도 .ssh / config 파일은 별명, 서버 당 사용자 / 포트 기본값, ssh 옵션, 프록시 명령과 같은 ssh 명령을 쉽게 사용할 수 있도록 구성 할 수 있습니다.

기본적으로 ssh 명령에 넣을 수있는 복잡한 것은이 파일에도 있습니다.


0

퍼티를 기본 응용 프로그램 번들로 Mac에 포팅 했으므로 기술 사용자가 아닌 경우 macports 또는 터미널이 필요하지 않습니다.

스크린 샷에 대한 자세한 내용은 여기에 있습니다 : http://www.wine-reviews.net/2016/08/putty-for-mac-os-x-now-available.html

건배,


다른 질문에 오신 것을 환영합니다! 질문에 직접 대답하십시오. 내가 작업하는 제품에 대해 언급한다면 괜찮지 만 여러 게시물에 동일한 마케팅 블러를 붙여 넣는 것과는 반대로 주제를 다루려고 노력하십시오.
bmike
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.