서버에 우분투를 깔고 쓰기 시작했을때, 난 putty로 접속해서 쓰고자 했다. 그런데 이리저리 시도하는데 자꾸 접속이 안된다.
서버엔 ip주소가 할당되어 있었고 나는 리눅스는 make 몇번 돌려본게 경험의 전부였다.
어찌저찌 서버에 ssh 공개키를 집어넣고, root 계정으로 접속하는거에 성공했다. 난 여기서 추가로 비밀번호로 접속하기, 그리고
root 말고 다른 계정으로 접속하기까지 원했는데, 또 안되더라. 하지만 어쨌든 원격접속이 가능해지니 나중으로 미뤘다.
일단 컴퓨터가 돌아가기는 하잖아. 접속도 할수있고
몇달 뒤 귀찮아서 미뤄둔걸 해결했다.
쓸 건 세 가지다.
/etc/ssh/sshd_config
을 열면
Port 22
포트 설정
PermitRootLogin yes
yes면 루트 접속 가능, no면 불가능
뭔가 많은 삽질을 했었지만 기억이 나지않는다. 이정도 하고 파일을 저장한다. 이제 공개키를
$ pubkey >> $HOME/.ssh/authorized_keys
로 준비시킨다. 참고로 >
는 기존 파일을 덮어써버리는 리디렉션이고 >>
는 뒤에 추가하는 리디렉션이더라.
$ service sshd restart
로 ssh 데몬을 재시작하자.
리눅스를 처음(은 아니지만 처음만큼이나 정신없이) 쓰느라 잊고 있었는데
$HOME/.ssh/authorized_keys
은 당연히 계정마다 각각 다르다. 따라서
$ su anotheruser
로 anotheruser로 로그인한 다음, 다시한번
$ pubkey >> $HOME/.ssh/authorized_keys
해서 공개키를 넣어주자. 또
$ service sshd restart
해줘야 다음 로그인에 접속이 가능할 것 같다.
/etc/ssh/sshd_config
을 열어서
PasswordAuthentication yes
yes로 바꾼다.
정말 이게 끝인가? 난 비밀번호로 로그인이 안되어서 꼬박 하루동안 붙잡고 있었는데?
?
하지만 저걸 no로 바꾸고 putty에서 pubkey를 지우니
---------------------------
PuTTY Fatal Error
---------------------------
Disconnected: No supported authentication methods available (server sent: publickey)
---------------------------
확인
---------------------------
라고 하고, yes로 하니 비밀번호 접속이 되니까, 맞을거다.
그럼 왜 전엔 안됐을까?
구글링을 해보니 이런(http://linux.systemv.pe.kr/opensshd-7-0에서-바뀐점/) 글을 읽을 수 있었다.
OpenSSHD 7.0 부턴 root에 패스워드 인증이 차단된다고 한다.
글쓴이는 root로 로그인을 하려 하니 패스워드 입력 프롬프트가 나왔지만, 아무리 쳐도 안된다고 했다.
나도 그랬다. 맞게 입력해도 Access denied 가 나왔다.
$ sshd -V
unknown option -- V
OpenSSH_7.2p2 Ubuntu-4ubuntu2.4, OpenSSL 1.0.2g 1 Mar 2016
당시 나는 root 만 시도해보고 anotheruser로는 비밀번호를 쓸 생각을 못 했을수도 있겠다.
몇달전 나는 putty도 갖고있고 ip address도 갖고있는데 어떻게 ssh로 접속하지? 도 몰랐었다.
Host Name (or IP address)에 anotheruser@127.0.0.1
혹은 127.0.0.1
, Port에 22
같은 식으로 적고, Connection type에서 SSH
로 접속할 수 있다.
그리고 /etc/ssh/sshd_config
파일 수정이 제대로 안되면
sudo vim /etc/ssh/sshd_config
로 열어보자. 난 갑자기 vim에서 처음 보는 에러 'readonly' option is set (add ! to override)
를 뿜어서 당황했다.
지금 보니까 유저에게 write 권한이 없어보인다.