Tips

Login

# Login with private key - Linux
ssh -i key user@$IP
sudo chown kali:kali key
sudo chmod 600 key

# Login with private key - Windows
ssh -i key user@$IP "cmd.exe"
ssh -i key -t user@$IP "cmd.exe"
ssh -i key -t user@$IP "powershell.exe -NoLogo -NoProfile"
ssh -i key -T user@$IP "cmd.exe"
ssh -i key -T user@$IP "powershell.exe -NoLogo -NoProfile"
ssh -i key user@$IP -vvv

# SSH 단순화
ssh -i key user@$IP -o SetEnv=TERM=vt100
TERM=vt100 ssh -i key user@$IP

Keys

/home/$USER/.ssh/authorized_keys
/home/$USER/.ssh/id_rsa
/home/$USER/.ssh/id_rsa.pub

Public/Private Key Pair 생성

# ed25519
ssh-keygen -t ed25519 # 실행하면 기본적으로 ~/.ssh/id_ed25519 개인키와 .pub 공개키가 생김

# RSA
ssh-keygen -t rsa -b 4096 -f mykey # mykey와 mykey.pub 생성
ssh-keygen -t rsa -b 4096 -c 'wook@laptop'

# 
cat mykey > authorized.keys

Too many authentication failures

ssh-agent가 너무 많은 키를 자동으로 제출해서, 서버의 maxAuthTries 한도를 초과해서 발생한다. 즉, 올바른 키를 시도하기도 전에 너무 많은 인증 시도로 끊기는 상황.

ssh -i root root@127.0.0.1 Received disconnect from 127.0.0.1 port 22:2: Too many authentication failures Disconnected from 127.0.0.1 port 22

해결책: IdentitiesOnly=yes 에이전트나 기본 키들을 내지 않고, 지정한 키만 사용

ssh -i [private key] -o IdentitiesOnly=yes root@$IP

ssh-add -L          # 에이전트에 올라간 키 목록 확인
ssh-add -D          # 모두 제거
ssh-add ./root      # 이 접속에 쓸 키만 등록
ssh root@127.0.0.1  # -i 없이도 이 키로 시도됨

# 무슨 키들이 제출되는지 보기
ssh -vvv -i ./root -o IdentitiesOnly=yes root@127.0.0.1

Bruteforce