ssh 자동 로그 인 4 가지 실현 방법

3194 단어 ssh 자동 로그 인
1.자동 ssh/scp 방법
A.로 컬 호스트(즉,다른 호스트 를 제어 하 는 기계)입 니 다.B 는 원 격 호스트(즉 제 어 된 기계 서버)로 ip 이 192.168.60.10 이면;A 와 B 의 시스템 은 모두 Linux 이다.
A 에서 명령 실행:\#ssh-keygen-t rsa(연속 세 번 리 턴,즉 로 컬 에서 공개 키 와 비밀 키 를 생 성 했 습 니 다.비밀 번 호 를 설정 하지 않 습 니 다)\#[email protected]"mkdir.ssh"(비밀번호 입력 필요)\#scp~/.ssh/idrsa.pub [email protected]:.ssh/id_rsa.pub(비밀번호 입력 필요)
B 에서 의 명령:\#touch/root/.ssh/authorizedkeys(이 파일 이 존재 한다 면 건 너 뛰 기)\#cat/root/.ssh/idrsa.pub >> /root/.ssh/authorized_keys(idrsa.pub 의 내용 을 authorized 에 추가키 중
A 기계 로 돌아 가기:\#[email protected](비밀번호 필요 없 음,로그 인 성공)
2.상기 와 같이 n 개의 기계 자동 로그 인 제어
n 쌍 의 열쇠(키 와 공개 키)가 필요 합 니 다.ssh-keygen 명령 은 열쇠 쌍 의 이름 을 마음대로 변경 할 수 있 습 니 다.예 를 들 어\#ssh-keygen-t rsa Generating public/private rsa key pair.Enter file in which to save the key(/root/.ssh/idrsa): /root/.ssh/id_rsa_192.168.60.110
이러한 비밀 키 와 공개 키 의 이름 은 각각 id 이다.rsa_192.168.60.10 과 idrsa_192.168.60.110.pub;그리고 idrsa_192.168.60.10.pub 파일 의 내용 을 sever 의~/.ssh/authorized 에 추가 합 니 다.keys 파일 에서 마지막 으로 로 컬 에서 ssh 명령 의-i 매개 변수 로 로 컬 키 를 지정 하고 로그 인 합 니 다:\#ssh-i/root/.ssh/idrsa_192.168.60.110 [email protected]
scp 도 마찬가지 입 니 다\#scp-i/root/.ssh/idrsa_192.168.60.110 filename [email protected]:/home/someone
파일.bashrc 에 두 줄 을 더 하면 같은 동작 을 할 때마다 이렇게 긴 명령 을 입력 하지 않 아 도 됩 니 다:alias sshcell='ssh-i/root/.ssh/idrsa_192.168.60.110 [email protected]'alias scpcell='scp -i /root/.ssh/id_rsa_192.168.60.110 filename [email protected]:/home/someone'
이렇게 명령 을 입력 하여 ssh 와 scp 자동 로그 인 을 실현 합 니 다:\#sshcell\#scpcell
3.자동 ssh/scp 스 크 립 트
A,B 에서 C 까지 가 야 한다 면 ssh 와 scp 두 번 이 필요 하 다.ssh 자동 로그 인:\#!/usr/bin/expect -fset timeout 30spawn ssh weiqiong@Bexpect "password:"send "ppppppr"expect "]*"send "ssh weiqiong@Cr"expect "password:"send "ppppppr"interact
scp 는 A 에서 C:\#!/로 파일 을 복사 합 니 다.usr/bin/expect -fset timeout 300set file [lindex $argv 0]spawn scp $file weiqiong@B:/home/weiqiongexpect "password:"send "ppppppr"expect "]*"spawn ssh weiqiong@Bexpect "password:"send "ppppppr"expect "]*"send "scp $file weiqiong@C:/home/weiqiongr"expect "password:"send "ppppppr"expect "]*"exitinteract
scp 는 C 에서 A:\#!/로 파일 을 복사 합 니 다.usr/bin/expect -fset timeout 300set file [lindex $argv 0]spawn ssh weiqiong@Bexpect "password:"send "ppppppr"expect "]*"send "scp weiqiong@C:/home/weiqiong/$file .r"expect "password:"send "ppppppr"expect "]*"send "exitr"expect "]*"spawn scp weiqiong@B:/home/weiqiong/$file .expect "password:"send "ppppppr"interact
4.ssh/scp 채널 만 들 기
예 를 들 어 제 기 계 는 A 이 고 중간 서버 는 B 입 니 다.타 겟 서버 는 C 입 니 다.A 에서 ssh 에서 B 까지 B 입 니 다.B 에서 ssh 에서 C 까지 할 수 있 지만 A 는 직접 ssh 에서 C 까지 할 수 없습니다.현재 ssh 채널 기술 을 이용 하여 A 에서 직접 파일 을 전송 하 는 것 을 보 여 드릴 수 없습니다.
1. ssh -L1234:C:22 userid@BinputB's password(1234 는 이 컴퓨터 A 의 빈 포트 입 니 다.이 명령 은 A 기기 의 루트 사용자 권한 이 필요 합 니 다.실제로 이 컴퓨터 1234 포트 에 채널 을 만 들 었 습 니 다)
2.새로운 console 을 열 고 입력:scp-P1234 filenameuserid@localhost:input C's password

좋은 웹페이지 즐겨찾기