ubuntu에서 외부 접속을 좀 더 안전하게 설정하기 (우분투 ssh 접속 보안 설정)

1. 소개
우분투 서버를 관리하고 사용하는데 외부접속을 좀더 제한하여 보안을 강화한다.
보안강화는 접속 제한 두가지를 두고 SSH키 자체에 암호를 거는 것. 이렇게 세가지를 통합합니다.

2. 사용자 생성
우선은 sudo 권한이 있는 계정으로 서버접을 합니다.

3. RSA키 생성

# ssh-keygen -t rsa 

위의 명령어를 이용해서 RSA 방식의 개인키와 공개키를 생성합니다. 명령어를 실행하면 아래와 같이 키를 저장할 디렉토리와 파일명을 입력하라고 합니다. 보통 디폴트로 되어 있는 위치로 생성하면 됩니다. 현재 계정 아래의 .ssh 디렉토리 아래에 생성이 됩니다.

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):

다음은 암호를 입력하라고 나옵니다. 만약 퍼블릭 키를 이용해서 리모트로 암호 없이 바로 접속할려면 암호를 입력하지 않고 엔터를 치면 됩니다.

Enter passphrase (empty for no passphrase):
Enter same passphrase again:

마지막으로 아래와 같은 메시지가 출력되면서 파일이 생성됩니다.

The key fingerprint is:
e9:54:90:a3:5d:ba:7b:34:f2:30:76:f5:c7:4c:d3:25 [email protected]
The key's randomart image is:
+--[ RSA 2048]----+
|        ..       |
|        o..   E .|
|       o +.    .o|
|      . oo  .  .o|
|        S. . . +.|
|       o* +   . +|
|       ..O .   . |
|        . o      |
|         .       |
+-----------------+

아래와 같이 id_rsa 개인키 파일과 id_rsa.pub공개키 파일이 생성됩니다.

total 16
-rw-r--r-- 1 root root  399  4월  9 18:10 authorized_keys
-rw------- 1 root root 1679  4월 10 17:24 id_rsa
-rw-r--r-- 1 root root  399  4월 10 17:24 id_rsa.pub
-rw-r--r-- 1 root root  444  4월  9 21:06 known_hosts

공개키를 이용한 ssh 접속

위에서 생성한 SSH 키를 이용해서 다른 서버에 접속할 때는 접속할려는 서버 계정의 홈 디렉토리 아래의 .ssh/authorized_keys 파일을 생성한 후 위에서 생성한 공개키 스트링을 넣어두면 됩니다.

# cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADDQABAAABAQCgatkuBNq72JGIR59+D5Xh271RcLgH+C/eydKHOoqdX5hpZuLnh4/72LagQuqEd6SXi/Obv4iEgyhp+qfmP0ub9gddAHPwCn3ZLgEc6VQoNgtToO9gdXXHKfIH5R4QmJGqCZwWrhyBlIVM6SYmb3mT29EUkVq4F3YEuHW2lF5K258p6O9flG5ONf9CopQhWtatCflmOV/SUEBZbEdq7AFW9WHGdWo9g7XVVQ0MEuoRfJL9cKF30e5BmlFqu1eWSCrf6PIGpVsH2ikpKm8OihfIn62eLD1qJJLMeagGHoe+Zce3++iUHrzj0EdM/L7Y9EKI9cq089mOfNkv0sCMY1xt [email protected]

이 공개키 값을 카피 후 접속할려는 서버의 ~/.ssh/authorized_keys 파일에 카피 합니다.

# cat ~/.ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADDQABAAABAQCgatkuBNq72JGIR59+D5Xh271RcLgH+C/eydKHOoqdX5hpZuLnh4/72LagQuqEd6SXi/Obv4iEgyhp+qfmP0ub9gddAHPwCn3ZLgEc6VQoNgtToO9gdXXHKfIH5R4QmJGqCZwWrhyBlIVM6SYmb3mT29EUkVq4F3YEuHW2lF5K258p6O9flG5ONf9CopQhWtatCflmOV/SUEBZbEdq7AFW9WHGdWo9g7XVVQ0MEuoRfJL9cKF30e5BmlFqu1eWSCrf6PIGpVsH2ikpKm8OihfIn62eLD1qJJLMeagGHoe+Zce3++iUHrzj0EdM/L7Y9EKI9cq089mOfNkv0sCMY1xt [email protected]

이 후부터는 원격 서버에 접속시에 현재 서버의 개인키와 원격 서버의 공개키값이 조합되어 암호 없이 ssh 접속이 가능해 집니다.

# ssh -p 14101 sshtest.fun25.co.kr
Last login: Fri Apr 10 15:37:18 2015 from 211.239.124.233
[email protected]:~#

보안 상이 이유로 ssh 서버에 위의 키 방식만 가능하게 하고 암호를 통한 접속은 불가능하도록 할려면 아래와 같이 sshd 설정을 하면 됩니다.

# vi /etc/ssh/sshd_config

sshd 설정파일을 편집해서 아래 옵션을 추가하면 암호를 통한 접속은 불가능합니다.

PermitRootLogin without-password

ssh 서비스를 리로딩합니다.

# service ssh reload

Visual studio Extension 설치시 에러

Visual studio extension 설치시 위와같은 에러가 발생하였다. 다른 확장을 설치해도 마찬가지..

1/9/2020 5:03:59 PM - Microsoft VSIX Installer
1/9/2020 5:03:59 PM - -------------------------------------------
1/9/2020 5:03:59 PM - Initializing Install…
1/9/2020 5:03:59 PM - Extension Details…
1/9/2020 5:03:59 PM -     Identifier      : AStyle.6b52ccde-8ae4-4233-bccd-6b9b0ba06a56
1/9/2020 5:03:59 PM -     Name            : AStyle Extension 2020
1/9/2020 5:03:59 PM -     Author          : C
1/9/2020 5:03:59 PM -     Version         : 3.0.0.0
1/9/2020 5:03:59 PM -     Description     : An extension for Artistic Style.
1/9/2020 5:03:59 PM -     Locale          : en-US
1/9/2020 5:03:59 PM -     MoreInfoURL     : 
1/9/2020 5:03:59 PM -     InstalledByMSI  : False
1/9/2020 5:03:59 PM -     SupportedFrameworkVersionRange : [0.0,2147483647.2147483647]
1/9/2020 5:03:59 PM - 
1/9/2020 5:03:59 PM -     Supported Products : 
1/9/2020 5:03:59 PM -         Microsoft.VisualStudio.Community
1/9/2020 5:03:59 PM -             Version : [15.0,)
1/9/2020 5:03:59 PM -         Microsoft.VisualStudio.Pro
1/9/2020 5:03:59 PM -             Version : [15.0,)
1/9/2020 5:03:59 PM -         Microsoft.VisualStudio.Enterprise
1/9/2020 5:03:59 PM -             Version : [15.0,)
1/9/2020 5:03:59 PM -         Microsoft.VisualStudio.IntegratedShell
1/9/2020 5:03:59 PM -             Version : [15.0,)
1/9/2020 5:03:59 PM - 
1/9/2020 5:03:59 PM -     References      : 
1/9/2020 5:03:59 PM - 
1/9/2020 5:03:59 PM - Searching for applicable products…
1/9/2020 5:03:59 PM - Found installed product - Global Location
1/9/2020 5:03:59 PM - Found installed product - AtmelStudio
1/9/2020 5:03:59 PM - Found installed product - ssms
1/9/2020 5:03:59 PM - VSIXInstaller.NoApplicableSKUsException: This extension is not installable on any currently installed products.
    at VSIXInstaller.App.InitializeInstall(Boolean isRepairSupported)
    at VSIXInstaller.App.InitializeInstall()
    at System.Threading.Tasks.Task.InnerInvoke()
    at System.Threading.Tasks.Task.Execute()

더블클릭해서 설치하지말고 해당 확장으 마우스 오른쪽 버턴을 클릭해서 VSLauncher.exe로 열기를 선택해주면 정상적으로 설치할 수 있다.

단 몇 분만에 삭제 불가능한 폴더 및 파일을 지우는 방법

윈도우 컴퓨터를 쓰면서 아주 머리 아픈건 간혹 발견되는 삭제 불가능한 파일 또는 폴더들을 어떻게 지우냐는 겁니다. 툭하면 잘 지우다가도 도중에 액세스 권한이 없다 하면서 오류 내용과 함께 삭제 자체가 불가능한 애물단지로 거듭나기 때문이죠.

하지만 간과한 게 있다면, 윈도우 자체 내에서도 지원 하는 기능이 있다는 점 입니다.

해당 문제 파일 및 폴더가 이동만 가능 하다면, 이는 해결이 가능합니다.

1. 드라이브 폴더 내에서, 새로 만들기를 해서, 폴더 이름을 ‘windows.old’ 로 설정합니다.

*설명: 드라이브란, C 드라이브, D 드라이브 같은 일종의 대형 폴더를 의미합니다. 이 폴더 안에 바탕화면, 사진, 음악, 비디오, 그리고 윈도우 시스템 파일 등 모든 중요한 것들이 저장되어 있습니다.

만약 D 드라이브 또는 외장 하드가 있다면, 해당 드라이브에서 이 작업을 하는 것을 추천합니다.

(C 드라이브 에서 해도 상관은 없지만, 윈도우가 설치 되지 않은 다른 드라이브에서 하는 편이 사용자에 의한 해당 파일 또는 폴더를 다른 곳 에 이동 하는 실수를 방지 할 수 있는 가장 안전한 방법이라서 그렇습니다.)

2. 문제의 삭제 불가능한 폴더 또는 파일을 해당 ‘windows.old’ 폴더 안으로 이동(옮겨) 해 줍니다.

만약 이동 ‘권한 확인’이 뜬다면, 예 또는 확인을 눌러주면 됩니다.

3. (7시 방향의 윈도우 마크)시작 메뉴에서 ‘디스크 정리’ 를 검색. 디스크 정리 앱을 실행합니다.

주의: 지금 해당 드라이브의 ‘windows.old’ 폴더 안에 있는 내용물이 지우려고 하는 해당 파일 또는 폴더인지 다시한번 확인 해 보시기 바랍니다.

4. ‘시스템 파일 정리’ 를 눌러서 추가 스캔을 합니다.

5. ‘이전 Windows 설치 파일’ 이라 되어 있는 항목에 체크 해 주고, 아래의 ‘확인’ 을 눌러줍니다.

6. 기다립시다. 해당 과정이 끝나면, 이제 문제는 해결 되어 있을 겁니다.

이래도 안 되는 경우에는, https://twitter.com/MSHelpsKorea 마이크로소프트 트위터 공식 고객지원에 문의 해 보시기 바랍니다.