root계정을 SSH에서 사용하기



    서버 버전을 설치하였다면, 원격조작이 필요합니다. 윈도우의 경우에는 원격 제어방법으로 원격 데스크탑을 통해 컴퓨터를 제어할 수 있고, 리눅스의 경우에는 SSH를 통해 원격접속을 합니다. 물론, 데스크탑 버전을 설치하였다면 추가 패키지를 설치해서 원격데스크탑 기능을 사용할 수 있긴 합니다만, 쓸데없는 리소스 낭비를 막기 위해 서버 버전을 설치하였으므로, 원격 제어는 대부분 SSH를 이용해서 이루어 지게 됩니다.


    관련 카테고리 : 윈도우 원격제어




    하지만 아무런 설정 없이 SSH로 접속하여 root 계정으로 접속하면 퍼미션과 관련해서 로그인이 되지 않습니다. 이번 시간에는 관리가 용이 하도록 SSH에서 root 계정을 사용하는 방법을 알아보도록 하겠습니다.


    *경고*

    SSH에서는 가급적 보안상의 이유로 root 계정으로 접속하는 것을 활성화 시키기 보다는 "su" 명령어를 이용해서 일시적으로 최고 관리자 권한을 얻는 것이 더 보안상 좋습니다. 만약, 저처럼 귀찮은게 싫은 분들만 설정하길 바랍니다.




    SSH 사용하기


    우분투 서버를 설치하면서 같이 설치하면 좋은 소프트웨어로 SSH 서버를 설치하라고 한적이 있었습니다. 앞으로 소개할 글은 설치가 되었다라는 전제하에서 진행이 됩니다.



    만약, OS 설치시 SSH 서버를 설치하지 않았다면 아래와 같은 명령어를 통해서 패키지 설치가 가능합니다.


    # apt-get install openssh-server


    제대로 설치가 되었는지 확인하고 싶다면 /etc/ssh 디렉터리 안에 sshd_config 파일이 존재하는지 확인하시면 됩니다.

    일단 SSH에 대해서 좀 더 알아보자면


    시큐어 셸(Secure Shell, SSH)은 네트워크 상의 다른 컴퓨터에 로그인하거나 원격 시스템에서 명령을 실행하고 다른 시스템으로 파일을 복사할 수 있도록 해 주는 응용 프로그램 또는 그 프로토콜을 가리킨다. 기존의 rsh, rlogin, 텔넷 등을 대체하기 위해 설계되었으며, 강력한 인증 방법 및 안전하지 못한 네트워크에서 안전하게 통신을 할 수 있는 기능을 제공한다. 기본적으로는 22번 포트를 사용한다.

    - 출처 : 위키 



    조금 쉽게 설명하자면, 윈도우에서 사용하는 명령프롬프트를 원격으로 사용할 수 있도록 하는 기능입니다. 윈도우에서는 터미널 텔넷이라고 이야기 하는 기능입니다.


    한마디로 일일이 서버 컴퓨터를 조작하여 제어하지 않아도 언제 어디서나 서버를 제어할 수 있다는 것이 장점입니다. 또한 SSH 접속의 경우에는 모바일로도 쉽게 접속이 가능하고, SSH 접속 프로그램만 있다면 서버관리를 할 수 있습니다.

    다만, 확실하게 말씀드릴 수 있는것은 원격 데스크탑처럼 직관적이지 않아서 명령어를 일일이 외우고 공부를 해야 한다는 단점이 있습니다.


    root 계정의 경우 보안상 SSH에서 활성화를 시키지 않는 것이 좋다고 위에서 경고에 적어 놓긴 하였는데, 그래도 root 계정을 활성화 시키는 시장 큰 목적중에 하나는 바로 SFTP를 사용하기 위함입니다.




    SSH 설정하기



    SSH의 설정을 하기 위해서는 root 계정 또는 최고 관리 권한을 획득하고 있어야 합니다. 


    일단, 직접 서버에서 조작을 하든지, SSH에서 OS 설치시 만든 계정으로 접속한 후 "su"명령어를 통해서 접속하는 방법이 있습니다.




    위와 같은 화면이 나왔다면 아래와 같은 명령어를 입력해서 SSH 설정파일을 로드 합니다.


    1
    vi /etc/ssh/sshd_config
    cs


    그럼 아래와 같은 설정화면이 나오게 됩니다. vi 에디터를 통해서 설정을 변경하므로 간단하게 vi 명령어정도만 소개를 하면서 설명하도록 하겠습니다.




    위의 화살표 있는 부분의 내용을 변경합니다. vi 에디터에서 키보드의 화살표를 이용해서 이동을 하면 됩니다.


    1
    PermitRootLogin without-password
    cs


    에서 without-password 부분을 yes로 바꿔 줍니다. 이렇게 원하는 내용으로 변경하기 위해서는 vi 에디터의 단축키인 "a"를 누르면 수정(편집모드 - 삽입)이 가능합니다.


    1
    PermitRootLogin yes
    cs


    이렇게 변경을 하였으면 Esc를 눌러서 편집모드를 종료한 뒤에 :wq 를 입력하고 엔터를 누릅니다. :를 누른뒤에 wq를 입력한다는 이야기는 저장하고 종료하겠다는 뜻입니다.

    만약, 설정을 잘못해서 그냥 종료하고 싶다고 하면 : 을 누르고 q!를 입력하면 저장하지 않고 종료합니다.

    위에 vi 에디터의 명령어는 모두 대소문자를 구분합니다.


    마지막으로 설정을 완료 했으면 ssh 서비스를 재 시작 해줘야 합니다.


    1
    # service ssh restart
    cs


    꼭 서비스 재시작을 해줘야 정상적으로 ssh에 root 계정을 사용할 수 있습니다.




    SSH 접속하기


    root 계정으로 SSH 접속이 가능하도록 설정하였으니 실제로 접속하여 봅시다. SSH 접속 프로그램으로는 가장 유명한 PuTTy를 사용하도록 하겠습니다. 



    Host Name에는 접속할 주소를 적습니다.(도메인이든, IP주소든 상관없습니다.)


        



    내부에서 접속하는 경우에는 22번 포트가 개방되어 있을테지만, 외부에서 접속하는 경우에는 반드시 포트포워딩 설정이 되어있는지 (또는 DMZ나 TwinIP)확인하시기 바랍니다.

    올바르게 모든 정보를 입력하고 접속을 하면 아래와 같은 경고가 나오는데, 처음 접속하는 서버의 경우 보안을 위해 일종의 "지문"을 남기는 일을 합니다.





    그리고 root 계정과 암호를 입력하면 





    정상적으로 접속이 되는 것을 확인할 수 있습니다.



    SSH를 이용해서 정작 제가 가장 많이 쓰는 명령어는 shutdown 이네요. 역시나 대소문자 주의하세요.


    전원 종료

    1
    shutdown -P now
    cs



    재부팅

    1
    shutdown -r now
    cs



    이제 다음 시간에는 SSH에서 root 계정을 활성시킨 가장 큰 목적이었던 SFTP에 관한 내용을 적도록 하겠습니다.







    Posted by Study For Us clamp2x
    • gun
      2015.07.01 00:13 신고

      service ssh restart 라고 입력하면
      stop: unknown job: ssh
      start: unknown job: ssh
      란 오류를 띄우네요.... ㅠㅠ
      몆시간째 삽질중... 오늘은 이만 자야겠습니다.ㅠㅠ

      • Favicon of http://studyforus.tistory.com BlogIcon Study For Us clamp2x
        2015.07.01 00:19 신고

        /etc/init.d/ssh restart 이 명령어로 재시작 해보세요.^^

      • gun
        2015.07.01 19:17 신고

        그 명령어로 입력하고 엔터 치면 아무 안내문도 안나오고 마치 아무명령어 없이 그냥 엔턴 친거 마냥 화면이 원래 입력 상태로 되돌아 갑니다. ㅎㅎㅎㅎㅎ

      • Favicon of http://studyforus.tistory.com BlogIcon Study For Us clamp2x
        2015.07.01 19:33 신고

        아무것도 안나오는게 정상입니다.
        SSH 재시작이 잘 안되면 서버를 재부팅 하는 것이 가장 확실한 방법입니다.^^

      • gun
        2015.07.02 00:21 신고

        제가 실수 했네요. 여기 메뉴얼 대로 서버버전 설치할때 이미 ssh 를 설치 하라는 메뉴얼 대로 해놓고 또 한번 더 수동으로 설치를 하면서 문제가 생긴듯 합니다.

      • Favicon of http://studyforus.tistory.com BlogIcon Study For Us clamp2x
        2015.07.02 00:22 신고

        그래도 같은게 설치되기 때문에 설치가 안될텐데 이상하군요. 현재는 잘되나요?

      • gun
        2015.07.02 22:41 신고

        네 다시 서버설치해서 설치할때 같이 설치한 ssh 로 정상작동합니다.

        본문 제목에 서버 설치할때 설치했거나 설치됬는지 확인 명령을 써주시면 저처럼 삽질을......ㅎㅎㅎㅎㅎ

      • Favicon of http://studyforus.tistory.com BlogIcon Study For Us clamp2x
        2015.07.03 12:16 신고

        주의사항 같은 것을 추가 해놓겠습니다.
        그리고 ssh를 한반 더 설치하면 위와 같은 이슈가 생기는 것은 처음 알았네요. 같은 상황을 시도해 봐야겠어요. ^^

    • lobUbuntu
      2015.11.27 22:42 신고

      안녕하세요 우분투 개인 서버 구축시도중인 대학생이에요.
      vmware 에서 cui 방식으로 따라하고 있는데 vi /etc/ssh/sshd_config 명령어 입력하니까
      no such file or directory라고 떠요.
      혹시 C드라이브 같은 곳에 디렉토리 생성이 되어있어야 하나요???
      저는 우분투 서버 버전 깔앗는데 보니까 디렉토리같은 거 생성이 안되있어서요 ㅠㅠ

      • Favicon of http://studyforus.tistory.com BlogIcon Study For Us clamp2x
        2015.11.27 23:00 신고

        그거는 ssh server를 설치하지 않으셔서 그런겁니다.

        #apt-get install openssh

        명령어를 이용해서 설치할 수 있습니다. 서버 버전을 설치했더라도 ssh 서버를 같이 설치해주셔야 합니다.

        http://studyforus.tistory.com/233 이글이 서버버전으로 설치하는 내용입니다.^^

    • jhpark
      2016.02.12 17:35 신고

      위와 같은 방법으로 아무 오류없이 진행했는데도 불구하고
      access denied 되네요...ㅠ

    • ubuntu
      2018.07.09 16:10 신고

      안녕하세요, 제가 지금 제 컴퓨터에 우분투 서버 (16.04) 를 설치해서 제가 하려고 하는 것을 테스트 해보고 난 뒤에 실제로 진짜 서버에 적용을 하려고 하는데요.. 제 컴퓨터에서 다른 우분투 서버에 SSH로 원격 접속을 하려고 합니다. 검색해서 이것저것 따라해봤지만 자꾸 password 가 틀렸다고 거절되네요..제가 알고 있는 정보는 아직 우분투 초짜라 이게 맞는지 잘 모르겠는데 테스트용 서버 ip 주소는 192.168 로 시작하는것으로 보아 사설 ip 주소 같습니다. 실제로 있는 서버는 공인ip 인데 제가 서버를 세팅하려면 원격 접속해야하는게 맞는지요? 아직 개념이 잘 잡히지가 않아서 많이 헷갈립니다.. 우분투 서버에서 다른 우분투 서버로 원격 접속하는게 가능한가요?

      • Favicon of http://studyforus.tistory.com BlogIcon Study For Us clamp2x
        2018.07.09 20:29 신고

        암호가 틀린 것은 위에 본문 내용중 root 계정 패스워드 사용에서 yes로 바꿨는지 확인해보세요.

        그리고 우분투에서 다른 우분투로 원격접속이 가능하고 꼭 우분투로만 접속하는게 아니라 ssh 프로그램만 있으면 ssh로 우분투 서버에 접속할 수 있습니다.

        즉 윈도우 -> 우분투, 리눅스 -> 우분투, macOS -> 우분투 모두 가능합니다. ^^

티스토리 툴바