```bash # ed25519 ssh-keygen -t ed25519 # 실행하면 기본적으로 ~/.ssh/id_ed25519 개인키와 .pub 공개키가 생김 # RSA ssh-keygen -t rsa -b 4096 -f my key # mykey와 mykey.pub 생성 ssh-keygen -t rsa -b 4096 -c 'wook@laptop' # cat mykey > authorized.keys ``` # 공개키 파일 - `.pub`파일은 키 생성자 측에 위치한다. - `authorized_keys` 파일은 서버 측에 위치한다. 로그인 허용용으로 공개키들을 모아둔 파일 - `authorized_keys` 파일 안에는 여러 공개키를 한 줄씩 넣을 수 있음. # Too many authentication failures ```plaintext ssh -i root [email protected] Received disconnect from 127.0.0.1 port 22:2: Too many authentication failures Disconnected from 127.0.0.1 port 22 ``` 위와 같은 에러가 생기는 이유: `ssh-agent`가 너무 많은 키를 자동으로 제출해서, 서버의 `maxAuthTries` 한도를 초과해서 발생한다. 즉, 올바른 키를 시도하기도 전에 너무 많은 인증 시도로 끊기는 상황. 해결책 `IdentitiesOnly=yes`: 에이전트나 기본 키들을 내지 말고, 지정한 키만 쓰기 ```bash ssh -i <private key> -o IdentitiesOnly=yes root@$IP ``` ```bash ssh-add -L # 에이전트에 올라간 키 목록 확인 ssh-add -D # 모두 제거 ssh-add ./root # 이 접속에 쓸 키만 등록 ssh [email protected] # -i 없이도 이 키로 시도됨 # 무슨 키들이 제출되는지 보기 ssh -vvv -i ./root -o IdentitiesOnly=yes [email protected] ```