본문 바로가기
컴퓨터 활용(한글, 오피스 등)/50_2.운영체제_리눅스

ssh 설치 설정

by 3604 2022. 9. 28.
728x90

ㅁ ubunbu ssh 설치



$apt install openssh-server -y

ㅁ 설치된 ssh의 설정파일 열기(Port 2222 추가)
$vi /etc/ssh/sshd_config
------------------------
Port 2222
------------------------

ㅁ 방화벽 끄고 방화벽 상태 확인하기

ufw disable
ufw status

      ----redhat에서  ufw 상태 처리-------------------------------------------

How to easily manage firewall rules with UFW in Red Hat Enterprise Linux 8

How to easily manage firewall rules with UFW in Red Hat Enterprise Linux 8

UFW stands for Uncomplicated FireWall, and as the name suggests, it makes firewall management a breeze. UFW was developed by Canonical and is available by default in all recent versions of Ubuntu. In this guide, we will install UFW on Red Hat Enterprise Linux (RHEL) 8 via Snaps.

Snapshots can be likened to containers for packaging applications with everything they require to run successfully on multiple Linux distributions. To use snaps, you must install snapd.

Instalar Snapd

Snapd is a background process that manages snapshots. To install snapd on RHEL 8, you must first add the Additional Packages for Enterprise Linux (EPEL) repository as follows.

 

$ sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

 

When prompted, enterycontinue. Once the EPEL installation completes successfully, run the following command to update the packages to the latest version.

 

$ sudo dnf upgrade

 

You can now install snapd as follows.

 

$ sudo yum install snapd

 

When prompted, enteryto continue with the installation.

After the snapd installation completes successfully, run the following command to enable snapd.socket, which manages snapd communications.

 

$ sudo systemctl enable --now snapd.socket

You should see a message that a symbolic link was created.

You can now log out and log back in so that the snapshot paths can be updated.

Install UFW

The following command will install UFW on RHEL 8.

$ sudo snap install ufw

Once installed, run the following command to check the status of UFW.

$ sudo ufw status

Use:If you get an error saying “ufw: command not found”, it may be a problem with the ufw paths. As a workaround, run the following command to create a symbolic link to/var/lib/snapd/snap/bin/ufwfrom/usr/bin/ufw. After that try to check the ufw status again and it should work fine.

$ sudo ln -s /var/lib/snapd/snap/bin/ufw /usr/bin/ufw

To enable UFW and configure it to always start at system boot, run:

$ sudo ufw enable

If your goal is to replace the built-in firewalld in RHEL 8 with UFW, you may want to disable the firewalld by running the following commands.

$ sudo systemctl stop firewalld 

$ sudo systemctl disable firewalld

By default, UFW denies all incoming traffic and allows outgoing traffic. However, you can change this default behavior if you want. To deny outgoing traffic for examplerun:

$ sudo ufw default deny outgoing

Run the following command to list the UFW application profiles.

$ sudo ufw app list

For example, to deny access toGood morningthe following command would suffice.

$ sudo ufw deny Bonjour

You can also specify port numbers to allow or deny traffic as follows.

$ sudo ufw deny 25

$ sudo ufw allow 22

Here is another example that allows traffic on TCP port 80.

$ sudo ufw allow 80/tcp

After adding your firewall rules, you can run the following command to view detailed information about the UFW status.

$ sudo ufw status verbose

To view additional usage information for UFW, run:

$ ufw --help

You can also review the official UFW man pages at the link below.

https://manpages.ubuntu.com/manpages/hirsute/en/man8/ufw.8.html

Conclusion

As you have seen, getting started with UFW on Red Hat Enterprise Linux 8 is not difficult. UFW may not intend to provide full firewall functionality, but it does provide an easy way to create and manage simple firewall rules. Share your ideas with us.

    ----------------------------------------------------------------------------------

ㅁ ssh 서비스 실행하고 실행상태 확인하기

service ssh start
service ssh status

ㅁ ssh 접속 명령어

ssh root@127.0.0.1 -p 2222

ㅁ putty로 wsl 연결

sudo vi /etc/ssh/sshd_config
-----------------------------
PasswordAuthentication  yes ; 암호 기반의 연결을 지원 설정
-----------------------------


ㅁ장애 대응 
 오류1) sshd: no hostkeys available -- exiting.

   * hostkeys 생성
     $sudo ssh-keygen -A

ㅁ putty gen 생성

출처: https://svrforum.com/svr/41413

그냥 전용키로 접근을 시도하게 되면 아래와같은 에러를 보시게 될겁니다.

 

 

No supported authentication methods available (server sent: publickey)

 

뭐 아무튼 기본 .key 파일이 있다고 가정하고 진행하도록 하겠습니다.

 

 

 

PuttyGen설치

이 .key 파일을 .ppk로 변경하기위해서는 PuttyGen 프로그램이 필요한데

putty를 .msi 버전으로 설치하시면 같이 자동으로 설치 됩니다.

그리고 실행 -> puttygen 으로 실행시켜줍니다.

 

 

 

PuttyGen은 암호화 키를 만들어주는 툴인데 이미 만들어진 키값을 가지고 새로운 개인키도 생성이 가능합니다.

 

.key -> .ppk 로 변환하기

 

Load버튼을 눌러 미리 다운로드 받아놓은 .key 파일을 실행시켜주세요.

 

파일확장자를 ALL Files 로 해야보입니다.

 

 

 

이렇게 키값이 보이는데 여기서 바로 Save private key 로 저장해서 사용해도되지만 이경우 별도의 인증과정없이 접속이됩니다.

 

2차로 password를 추가하고싶은 경우 Key passphrase 를 추가로 작성해주시면됩니다.

 

 

Putty를통해 SSH접속하기

putty 실행 후 ip 및 포트 입력

 

Connection -> SSH -> Auth 에 .ppk 파일 업로드 후 open

 

 

이건 호스트 key 값을 레지스트리에 저장할건지 묻는건데 편하신상태로 해주시면됩니다

 

 

1. 기본 상태로 키 저장.

 

계정명은 기본 계정명 ubuntu를 입력해주시면 커맨트로 등록해주던게 나오는데

한글이 깨지네요 ㅠ 암튼 커맨트창에 쳤던게 저렇게 나옵니다.

2. key comment, key passphrase 작성 후 저장.

두번째 passphrase 를 입력한경우에는 2차로 .ppk에 비밀번호를 입력하라고합니다.

 

만들어줬던걸 치면 정상적으로 로그인 됩니다.

 

 

이렇게 간단하게 .key 값을 개인키 .ppk로 바꿔봤습니다.

WSL 우분투 SSH( by Putty) 연결하기

출처: https://www.hind.pe.kr/1349

WSL 기반의 우분투를 설치해서 사용해보면 알겠지만, 기본적인 구성요소들은 설치되어 있다. python도 되고, perl은 apt-get install을 통해서 받으면 된다. 그런데, 다른 PC에서 이 Linux의 기능을 사용하고 싶을 때가 있는데, 분명 Open SSH 서버가 설치되어 있음에도 불구하고 putty로 연결할 수 없었다.

혹시나 해서 아래의 명령을 넣어 확인해봤는데, openssh 서비스를 실행해 봤더니, 설치만 된 것이지 실제 실행은 안된 것이였다.

지금까지 리눅스 쓰면서 이 부분에 대해서 확인을 안했던 이유가, 대부분 Ubuntu를 설치하거나 OpenSSH 서버를 설치 후 실행을 하면 자동으로 적용되었던 부분이 안되어있는 것 같았다.

지금부터 이 SSH를 활성화 해보도록 한다.

1. SSH용 host key 적용

서비스를 실행 하면 위의 이미지 처럼 나오는 단서는 "sshd: no hostkeys available -- exiting." 이다 . 즉 hostkey가 없어서 실행을 못한다고 한다. 이 문제를 검색해 보자 다음 사이트를 볼 수 있었다.
www.garron.me/en/linux/sshd-no-hostkeys-available-exiting.html

 

sshd: no hostkeys available -- exiting

sshd: no hostkeys available -- exiting Written by Guillermo Garron Date: 2020-05-11 19:05:00 00:00 Today while trying to start ssh server on my WSL Ubuntu installation, I got this error: sshd: no hostkeys available -- exiting After searching on the web, I

www.garron.me

여기서 "ssh-keygen -A" 명령을 넣으라고 나왔다. 그래서 다음과 같이 명령을 넣었다.

sudo ssh-keygen -A

그러면 새로운 host 키가 생성되었다고 표시된다. 이제 서비스를 다시 시작하자

sudo service ssh restart

그러면, 이제 ssh 서비스는 정상적으로 실행된다.

 

2. 암호 기반 로그인 처리

서비스가 활성화 되었으니, 이제 PuTTY로 연결해보자. 연결할 때의 주소는 localhost 포트(연결 대상을 ssh로 하면 자동으로 22번이 됨)는 SSH로 하면 된다. 그러나 아이디를 넣는 순간 다음과 같이 뜨면서 더 이상 진행되지 않는다.

이 문제는 SSH 서버 설정 때문이다. 기본적으로 SSH가 설치되면, 로그인 처리 없이, 인증서(SSH용 SSL 인증서)만으로 로그인이 되도록 설정되어 있어서 그렇다. 이 설정이 기본값으로 되어 있어, 아이디를 넣는 순간 PuTTY에서는 위와 같은 오류를 내며 연결이 되지 않는다.

이를 설정하려면 다음 명령을 입력해서 설정 값이 담긴 텍스트를 열어야 한다.

sudo vi /etc/ssh/sshd_config

약 58번째 줄을 보면 PasswordAuthentication 이라는 항목이 보이는데, no로 되어 있는 것을 yes로 변경한다. 즉 암호 기반의 연결을 지원하도록 하는 설정이다.

다시 서비스를 다시 시작한다.

sudo service ssh restart

 

그러면 PuTTY를 이용해 localhost:22 로 다시 접속하면 정상적으로 접속됨을 확인할 수 있다.

 

 

ㅁ  CentOS  ssh 설치

 

1. ssh 설치 확인

# yum list installed ssh 명령으로 ssh 설치 확인

 

2. ssh 설치

# yum -y install openssh-server openssh-clients openssh-askpass 명령으로 설치

[다운로드 중]

[설치완료]

[설치 확인]

 

3. network 재시작

# systemctl restart network 명령으로 network 재시작

 

4. ssh 설정파일 수정(/etc/ssh/sshd_config 파일)

#Port 22 ==> Port 22 : 이 부분 주석 해제

 

5. ssh 서비스 구동

# systemctl start sshd.service

 

6. 방화벽 해당 Port 열기

# firewall-cmd --zone=public --add-port=22/tcp --permanent

# firewall-cmd --reload

 

7. putty 클라이언트로 접속 확인

 

 

ㅁ 점검

ssh -vvv -p 22 192.168.56.1

728x90