SSH 키 교환에 사용할 비대칭 키 쌍 생성
(RSA 기반으로써 공개키-개인키 쌍으로 이루어지며, 공개키로 암호화하면 키 쌍의 개인키로만 복호화가 가능하다
비-대칭의 의미는 암호화에 사용하는 키와 복호화에 사용하는 키가 서로 '같지 않음'을 의미한다.
대칭키는 암호화 및 복호화에 쓰이는 키가 동일하다)
키 생성
(로그인 대상 계정의 home 디렉토리에서 수행
.ssh 의 소유자는 해당 계정 소유자여야 한다)
mkdir .ssh
Generating public/private rsa key pair.
Enter file in which to save the key (/home/test/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/test/.ssh/id_rsa.
Your public key has been saved in /home/test/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:KEfSRV5h/WrcnnsZLc4UgrSGbsC1GOJUtOiOcbo1/L8 test@wildfly
The key's randomart image is:
+---[RSA 2048]----+
| oo.o +o |
| oo.+.o. . |
| ooo++.+ o . |
| ..o+.o + . o |
| . + ooS. . + ..|
| B o o + +..|
| o = . . = oo|
| o o =..|
| . ..E. .o |
+----[SHA256]-----+
chown -R account:account-group .ssh
chmod 700 .ssh
cd chmod
cat idrsa.pub > authorized_keys
chmod 600 *
▶︎ id_rsa 는 개인키(비밀키)
▶︎ id_rsa.pub 는 id_rsa 에 대응하는 공개키
▶︎ authorized_keys 에 기록된 키는 '접속을 허용할 서버의 공개키'
즉 A 에서 B 로 접속 할 경우 A에서 ssh-keygen 을 이용해 키 쌍을 생성하고
id_rsa.pub의 공개키를 B서버로 전송한다.(authorized_keys에 기록)
이 경우 ▹A에서 B에 접속 시 B가 A의 공개키로 비밀키를 암호화하여 A에 전송하고
A는 B에서 전송된 '암호화 된 개인키를 복호화' 하여 이후 암호화 통신을 하게 된다.
<대상 서버가 여러개일 경우>
A 에서 B 로 접속할 때, A 의 ~/.ssh/config 에 계정별 키 파일을 IdentityFile 로 지정해 둔다.
IdentityFile ~/.ssh/root_id_rsa
IdentityFile ~/.ssh/stryu_id_rsa
IdentityFile ~/.ssh/haedong_id_rsa
IdentityFile ~/.ssh/id_rsa
mkdir ~/.ssh
chmod 700 ~/.ssh
cd ~/.ssh
# private key 생성
# 1024는 키 길이. Cloudera 설치를 위한 경우는 꼭 1024로 설정 해야 한다.
openssl genrsa -out id_rsa 1024
# public key 생성
ssh-keygen -y -f id_rsa > id_rsa.pub
# 신뢰하는 공개키 등록
cat id_rsa.pub >> authorized_keys
chmod 600 *