자동화된 파일-전송을 위한 공용 키 입증 사용하기
기사는 Neal Canny에 의해 추가되었다문제: 자동화한 원본 및 파일-전송은 암호 보호한 공용 키를 암호문을 해독할 수 없다.
공용 키 자동으로 1대의 기계로부터 또 다른 한개로 파일을 옮기기 위하여 입증을 이용하는 것이 가능하다. 이것은 보통 추천되지 않는 동안, 배치 원본을 위해 바람직할지도 모른다. 그러나, 이것은 몇몇 위험으로 명확하게 이끌어 내는 공백 passphrase를 놓는 포함한다. 그러므로 이 기계장치는 특정한 2 사이 일방 연결, 다른 주인에 무특권 사용자 고유 번호를 위해서만 이용되어야 한다.
STEP1: 누구를지 누구가 신뢰하는지 결정하십시오
무슨 사용자 고유 번호가 각각에 사용되기 위하여 려고 하고 있는 어느 체계 신망과지 결정하십시오. 최소 (의 아닙니다 진짜 사람 비루트) 특권 사용자 고유 번호는 system-to-system 신망 관계를 위해 최상 이다. 보다 적게 안전한, 보다 적게 생명 체계가 더 안전한 일반적으로, 중요 시스템을 신뢰한.
아래에 보기에서는, 우리는 사용자 sshuser2로 server.example.com에 연결하기 위하여 client.example.com에 sshuser를 설치할 것이다.
STEP2: 키 쌍을 생성하십시오
첫째로, 키 쌍은 server.example.com에 sshuser를 위해 생성될 필요가 있다. 키 쌍을 생성하는 것은 이 책의 단계 4.3에서 선발된다. 그러나, 키 쌍은 자동화되는 이동을 위해 생성될 때, 우리가 결코 개인 키를 암호문을 해독하는 자극되지 않는다 그래야 형성되어야 한다.
ssh-keygen 프로그램에 의해 자극될 경우 이것을 달성하기 위하여는, passphrase에 들어가지 말라 - 대신 다만 압박은 들어간다. 이것은 또한 - ssh-keygen에 무효 passphrase를 가진 P 선택권 (예를들면 - P ""를 공급해서 달성될 수 있다). 당신이 passphrase에 들어가지 않을 때, ssh-keygen는 당신이 암호로 고쳐 쓴 개인 키를 원하지 않는다는 것을 나타내기 위하여 이것을 이해한다:
[sshuser@client.example.com] $ ssh-keygen - t rsa
공중 개인 rsa 키 쌍 생성.
열쇠 (/home/sshuser/.ssh/id_rsa)를 저장하기 위하여 파일에 들어가십시오:
passphrase에 들어가십시오 (passphrase를 위해 비우십시오):
동일한 passphrase에 다시 들어가십시오:
당신의 ID는 /home/sshuser/.ssh/id_rsa에서 저장되었다.
당신의 공용 키는 /home/sshuser/.ssh/id_rsa.pub에서 저장되었다.
중요한 지문은:
7e: ab: 80: 12: 06: 0f: b9: 1f: f1: 64: b0: 0a: 00: 7c: 69: b4 sshuser@client.example.com
[sshuser@client.example.com] $
누군가 개인 키 파일을 얻을 수 있으면 개인 키가 지금 비암호화이라고, 저장되기 경우에 때문에, 그들은 입증 도전이 없다면 원격 기계에 로그인할 수 있을 것이라는 점을 명심하십시오. 이것은 우리가 키 쌍을 passphrase 없이 창조할 때 두 기계 전부에 제한되는 사용자 계정을 사용하는 이유이다.
STEP3: 원격 시시템에 공용 키를 베끼십시오
sshuser를 위한 키 쌍은 지금 ~sshuser가 sshuser의 홈 디렉토리, 키 쌍의 유형이 당신 창조한 id_dsa.pub id_rsa.pub 파일에서인 ~sshuser/.ssh 전화번호부에서 창조되고 저장되어야 한다:
[sshuser@client.example.com] $ CD .ssh
[sshuser@client.example.com] $ ls - l
합계 7
- rw-r--r-- 1 sshuser sshuser 1월 223일 22일 11:00 authorized_keys
- rw------- 1 sshuser sshuser 2월 883일 24일 12:29 id_rsa
- rw-r--r-- 1 sshuser sshuser 2월 239일 24일 12:29 id_rsa.pub
- rw-r--r-- 1 sshuser sshuser 2월 2880일 21일 08:50 known_hosts
[sshuser@client.example.com] $ 고양이 id_rsa.pub
ssh-rsa
AAAAB3NzaC1yc2EAAAABIwAAAIEAvXDPUt60ScgSrCFcYffvMTRVK8+IzOe1JKGDoIwCKlZB1E1GGkGQPHftVnan5oc+hX6C1wg66TFL
M/38jtQhWmGpLo00ZbfzmA9qrE72T/G58Vl57chZOmFWMWzXXYuni8v7ThT2pMXTY5csJRqX4pPquM76LGK6Qtpf5vyQH9M=
sshuser@client.example.com
[sshuser@client.example.com] $
sshuser의 공용 키는 지금 사용하기 위하여 sshuser2를 위한 server.example.com에 넘어서 베껴질 필요가 있다. 이것은 편리한 어떤 방법이라고 행해질 수 있다. 공용 키를 누구가 보는지 우리가 공용 키를 옮기고기 걱정하지 않기 때문에, 전자 우편에 의해 FTP와 같은 clear-text 방법에서 옮겨질 수 있다:
[sshuser@client.example.com] $ scp id_rsa.pub sshuser2@server.example.com: ~
sshuser2@server.example.com's 암호: *******
id_rsa.pub 100%년 | ***************************** | 239 00:00
일단 sshuser의 공용 키가 server.example.com에 베껴지면, server.example.com에 SSH 회의 및 sshuser2로 로그인을 여십시오. 그것은 로그인할 수 없습니다 당신이 sshuser2 계정을 그런 제한하는 경우에, 당신은 server.example.com에 뿌리로 로그인하고, 그 후에 su 명령을 사용하여 sshuser2가 되어야 할 것이다:
[sshuser@client.example.com] $ ssh sshuser2@server.example.com
sshuser2@server.example.com's 암호: *******
마지막 로그인: 월요일 2월 24일 11:19: client.example.com에서 15 2003년
[sshuser2@server.example.com] $
일단 당신이 sshuser2로 로그인하면, sshuser2 홈 디렉토리에 있는 .ssh 전화번호부에 변화. 당신은 authorized_keys이라고 지명된 파일을 보아야 한다.
[sshuser2@server.example.com] $ CD .ssh
[sshuser2@server.example.com] $ ls - l
합계 12
- rw-r--r-- 1 sshuser2 직원 2월 227일 24일 12:21 authorized_keys
- rw-r--r-- 1 sshuser2 직원 12월 223일 9일 14:25 known_hosts
[sshuser2@server.example.com] $
당신이 베낀 authorized_keys에 sshuser의 공용 키를 신청한다 추가하십시오. 열쇠로 파일에 열쇠를 추가할 것이 1개의 지속 선으로 남아 있어야 할 때 조심하십시오 (i.e 캐리지-리턴 또는 개행 없음).
[sshuser2@server.example.com] $ ls ~/id_rsa.pub
/home/sshuser2/id_rsa.pub
[sshuser2@server.example.com] $ 고양이 ~/id_rsa.pub >> authorized_keys
[sshuser2@server.example.com] $ 고양이 authorized_keys ssh-rsa
AAAAB3NzaC1yc2EAAAABJQAAAIEA2Rv612mkhAXokW2tvA/6w34OM2PzYS9xQmY9PQg07qMqp0UbQAuEQEUc7Oga6wY9jBBQWmLx7B3c
RuDdOQnASUugqQypuIVqqw4iaEi24qmrI6JTDCwEWZQ+ndODVXDDQeTVEVJLxNvvbwSvcvi3tV+7m26HooFYvoGWb7njJqk=
sshuser2@server.example.com
ssh-rsa
AAAAB3NzaC1yc2EAAAABIwAAAIEAvXDPUt60ScgSrCFcYffvMTRVK8+IzOe1JKGDoIwCKlZB1E1GGkGQPHftVnan5oc+hX6C1wg66TFL
M/38jtQhWmGpLo00ZbfzmA9qrE72T/G58Vl57chZOmFWMWzXXYuni8v7ThT2pMXTY5csJRqX4pPquM76LGK6Qtpf5vyQH9M=
sshuser@client.example.com
일단 sshuser의 공용 키가 authorized_keys에 추가되면 성공적으로 신청하십시오, 당신은 자동으로 입증을 위해 자극 없이 sshuser2로 client.example.com로부터 server.example.com로 사용자 sshuser로 파일을 로그인하고 옮길 수 있어야.
STEP4: 당신이 입증 길잡이 없이 로그인할 수 다는 것을 확인하십시오
공용 키 입증이 passphrase를 위해 자극하고 있지 않다는 것을 확인하기 위하여는, sshuser2로 server.example.com sshuser로에서 server.example.com에 로그인 시도하십시오. 모두가 제대로 형성되는 경우에, 당신은 passphrase를 위해 자극되고 자동으로 로그인해야 한다.
[sshuser@client.example.com] $ ssh sshuser2@server.example.com
마지막 로그인: 월요일 2월 24일 12:25: client.example.com에서 16 2003년
[sshuser2@server.example.com] $
STEP5: scp 이동이 작동한ㄴ다는 것을 확인하십시오.
당신이 passphrase를 위해 자극 없이 OpenSSH를 사용하여 원격 시시템에 로그인할 수 있는 경우에, 당신은 passphrase 없이 sshuser로 client.example.com에서 sshuser2로 server.example.com에 파일을, 또한 베끼기 위하여 scp를 이용할 수 있어야:
[sshuser@client.example.com] $ scp test.pl sshuser2@server.example.com: ~
test.pl 100%년 | ***************************** | 151 00:00
[sshuser@client.example.com] $
STEP6: 연결을 장악하십시오
이 때 당신은 passphrase를 위해 자극 없이 공용 키 입증을 사용하여 서버에 로그인하기 위하여 클라이언트에 사용자 계정을 위한 기능을 창조했다. 이 공용 키 입증을 사용하여 더 편리한 만드는 동안, 또한 몇몇 안보 위협을 연다. 즉, 원격 서버에 로그인하는 이용된 개인 키는 지금 비암호화 앉는이다. 악의 있는 공격기가 비암호화 개인 키를 얻을 수 있던 경우에, 그는 원격 사용자로 로그인할 수 있을 것입니다. 그러므로, 몇몇 더 금지는 비암호화 개인 키의 사용의 아래 자물쇠에 장소로 끼워넣어야 한다.
OpenSSH는 입증에 사용된 열쇠를 제한하기 위하여 이용될 수 있는 다수 선택권을 제공한다. 이 선택권은 연합되는 키 엔트리의 바로 전 원격 서버에 authorized_keys에서 신청한다, 들어간다. 다수 선택권은 열쇠의 사용을 더 제한하기 위하여 이용될 수 있다. 유효한 선택권은 아래에 기술한 바와 같다.
from=는 " 접대한다 " - 입증을 위해 열쇠를 사용하는 것이 허용되는 분해 가능한 호스트 네임 또는 IP 주소을 지정한다 선택권에서. 자유패 "*"와"? "와 부정"! "또한 어느 주인이 연결하는 것이 허용되는지 나타내는 사용될 수 있다. 다수 주인은 쉼표 한계를 정한 명부에서 지정될 수 있다. 선택권에서를 사용하여 열쇠의 보기는 아래에 보여진다:
from= " 192.168.1.10, *.example.com! client.example.com " ssh-rsa AAAAB3NzaC1yc2Eaaaa253gAAIEAuG8ugce5+/
Cno2FCcyraJN2LK5Gsl+ujV8ad8s1lobhldonA20x6i9eNln8+LP76k2jMuLFtWEmc8MwmvrnIL2ZH2SOC90QpB3KwBuS6suVWT
X5AKkXpB5uEKMWQJjHoEFOQx7Kpzmkav83n73naE8u/oyagSIgLVxCIvEhk9XX8= sshuser@example.com
공용 키 입증이 성공의 때 OpenSSH 악마가 암호 인증 등을 맞댄 넘어지기 위하여 놓이는 경우에 주는, 악의 있는 사용자 그들이 계정을 위한 암호를 알고 있는 경우에 체계에 로그인할 수 아직도 있을지도 모른다! 저것은 이 선택권이 단지 열쇠의 사용만 제한하기, 계정의 사용 아닙니다 때문이다.
command= " 명령 " - 명령 선택권은 열쇠가 입증을 위해 사용된 직후에 달리는 명령을 지정한다. 명령이 수행한 후에, SSH 회기는 즉시 종료될 것이다. 이 선택권은 당신이 백업 문서 카피와 같은 단일 명령에 열쇠의 사용을 제한하골 싶을 때 극단적으로 유용하다.
command= " /home/backup/backup.sh " ssh-rsa AAAAB3NzaC1yc2Eaaaa253gAAIEAuG8ugce5+/
Cno2FCcyraJN2LK5Gsl+ujV8ad8s1lobhldonA20x6i9eNln8+LP76k2jMuLFtWEmc8MwmvrnIL2ZH2SOC90QpB3KwBuS6suVWT
X5AKkXpB5uEKMWQJjHoEFOQx7Kpzmkav83n73naE8u/oyagSIgLVxCIvEhk9XX8= sshuser@example.com
environment= " variable=value " - 환경 선택권은 열쇠가 사용된다 언제든지 환경에 추가되는 가변을 지정한다. 이 환경 변수가 이미 놓이는 경우에, 그것의 이전 가치는 겹쳐서 쓰일 것이다. 이 선택권은 지원 원본에 있는 경로 특정 공격을 방지하기 위하여 환경 변수 제한을 위해 유용할 수 있다. 이 선택권은 다수 시간 지정될 수 있다.
environment= " PATH=/bin: /usr/bin ", environment= " TERM=vt100 " ssh-rsa AAAAB3NzaC1yc2Eaaaa253gAAIEAuG8ugce5+/
Cno2FCcyraJN2LK5Gsl+ujV8ad8s1lobhldonA20x6i9eNln8+LP76k2jMuLFtWEmc8MwmvrnIL2ZH2SOC90QpB3KwBuS6suVWT
X5AKkXpB5uEKMWQJjHoEFOQx7Kpzmkav83n73naE8u/oyagSIgLVxCIvEhk9XX8= sshuser@example.com
permitopen= " 주인: 항구 " - 선택권을 제한한다 지정된 주인 및 항구에 현지 항구 운송을 permitopen. 선택권에서와는 다른, 자유패와 부정은 사용될 수 없다. 배수는 선택권을 지정될 수 있다 permitopen. 운반 운송에 정보 더를 위해 단계 6.1를 보십시오.
permitopen= " mail.example.com: 25 ", permitopen= " mail.example.com: 143 " ssh-rsa AAAAB3NzaC1yc2Eaaaa253gAAIE
AuG8ugce5+/Cno2FCcyraJN2LK5Gsl+ujV8ad8s1lobhldonA20x6i9eNln8+LP76k2jMuLFtWEmc8MwmvrnIL2ZH2SOC90
QpB3KwBuS6suVWTX5AKkXpB5uEKMWQJjHoEFOQx7Kpzmkav83n73naE8u/oyagSIgLVxCIvEhk9XX8= sshuser@example.com
항구 운송 - 열쇠가 사용될 경우 이 선택권은 어떤 운반 운송든지 부인할 것이다. 운반 운송에 정보 더를 위해 단계 6.1를 보십시오.
X11 운송 - 열쇠가 사용될 경우 이 선택권은 X11 운송을 부인할 것이다. X11 운송에 정보 더를 위해 단계 6.3를 보십시오.
대리인 운송 - 열쇠가 사용될 경우 이 선택권은 대리인 운송을 부인할 것이다. 대리인 운송은 OpenSSH에서 OpenSSH 당신의 현지 악마가 원격 기계에 입증 대리인을 (ssh 대리인 또는 장관) 접촉하는 것을 허용하도록 이용된다. 입증 대리인은 단계 4.5에서 더 자세히 토론된다.
pty - 이 명령은 열쇠가 사용될 때 생기기 위하여 TTY 배부를 방지한다. 이것은 당신이 열쇠를 비대화식 명령을 위해서만 사용될 원할 때 백업과 같은 유용하다.
, 대리인 운송 pty, X11 운송, 항구 운송 ssh-rsa AAAAB3NzaC1yc2Eaaaa253gAAIE
AuG8ugce5+/Cno2FCcyraJN2LK5Gsl+ujV8ad8s1lobhldonA20x6i9eNln8+LP76k2jMuLFtWEmc8MwmvrnIL2ZH2SOC90
QpB3KwBuS6suVWTX5AKkXpB5uEKMWQJjHoEFOQx7Kpzmkav83n73naE8u/oyagSIgLVxCIvEhk9XX8= sshuser@example.com