0. ๊ฐ์
...๋ค ๊ตฐ๋์ ์์ต๋๋ค (์ ์ฅ)
๊ตฐ๋๋ฅผ ๊ฐ ์์ค์ ์๋๋ฐ๋งต ๋ฏธ๋์ด ์๋ฒ๊ฐ ์๋์น ์๊ฒ ์ญ์ ๋์๊ณ ๋ค์ ์ค์ ํด์ผํ๋ ์ํฉ์ด ๋์์ต๋๋ค(...ใ )
์ด ํฌ์คํ ๋ค์ ๊ธฐ์กด์ github์ ์๋ ์ฝ๋๋ฅผ ๋ค์ ๊ฐ์ ธ์ ์๋ฒ๋ฅผ ์ฌ์ค์ ํ๋ ๊ณผ์ ์ ๋ํ ๊ธฐ๋ก์ผ๋ก, ๊ทธ์ค centos ์ด๊ธฐ ์ค์ ์์ ssh๋ฅผ ์ค์ ํ๋ ๊ณผ์ ์ ๋ด๊ณ ์์ต๋๋ค.
1. ์ค์น์ฌ๋ถ ํ์ธ
์ค์นํ๊ธฐ์ ์ค์น์ ํ์์ฑ์ด ์๋์ง๋ถํฐ ํ์ธํด์ผ ํฉ๋๋ค.
ssh๊ฐ ์ด๋ฏธ ์ค์น๋์ด์๋์ง ์๋ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํด์ ํ์ธํ์ต๋๋ค.
yum list installed openssh
์ ๊ฐ ์ค์นํ๊ณ ์ ํ๋ ssh ํจํค์ง๋ openssh ์์ต๋๋ค.
๋ฐ๋ผ์ ์ ์ฝ๋๋ openssh์ ์ค์น ์ฌ๋ถ๋ฅผ ํ์ธํ๋ ๋ช ๋ น์ ๋๋ค.
2. openssh ์ค์น
์ค์น๊ฐ ๋์ด์์ง ์์ผ๋ฏ๋ก ์ด์ ์ค์น๋ฅผ ํ ์์ ์ ๋๋ค.openssh-server: ssh ์ฐ๊ฒฐ์์ฒญ์ ๋ํ ์๋ต์ ์ฒ๋ฆฌํฉ๋๋ค.openssh-client: ์ฐ๊ฒฐ์์ฒญ์ ๋ํ ์ค์ง์ ์ฐ๊ฒฐ ์๋ฆฝ๊ณผ์ ์ ์ฒ๋ฆฌํฉ๋๋ค.openssh-askpass: openssh ์ด์ฉ์ ์ํ dialog ํ๋ก๊ทธ๋จ(?)(์ ํํ ์์๋๋ถ ๋๊ธ ๋ถํ๋๋ฆฝ๋๋ค..)
yum -y install openssh-server openssh-clients openssh-askpass
3. ๋คํธ์ํฌ์์คํ ์ฌ์์
๋คํธ์ํฌ ๊ด๋ จ ํจํค์ง ์ค์ ์ผ๋ก ๋คํธ์ํฌ์ ๋ณ๋์ฌํญ์ด ๋ฐ์ํ์ต๋๋ค.
์ด๋ฅผ ๋ฐ์ํ ์ ์๋๋ก ๋คํธ์ํฌ์์คํ ์ ๋ค์ ์์ํ๋ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํด์ค๋๋ค.
systemctl restart network
4. SSH ์ค์ ํ์ผ ์์
ssh๋ฅผ ์ ๋๋ก ์ฌ์ฉํ ์ ์๋๋ก ํ์ผ์ ์์ ํ์ฌ์ค๋๋ค.
ํ์ผ์์น: /etc/ssh/sshd_config
์ฐ์ ์ ์ผ ์ค์ํ port๋ฒํธ๋ ์์ 'Port'์ ์ ๋ ฅ๊ฐ์ ๋ฐ๊พธ๋ฉด ๋ฉ๋๋ค.
์๋ง ์์ #์ด ๋ถ์ด์ ์ฃผ์์ฒ๋ฆฌ๊ฐ ๋์ด์์ํ ๋ฐ, ์ง์์ ์ฃผ์์ ํ๊ณ ์ํ๋ ์ซ์๋ฅผ ์ ๋ ฅํด์ฃผ์ธ์ (๊ทธ๋ฅ 22์ฐ๋ฉด.. ๋ณด์์ ์ทจ์ฝํ๊ฒ ์ฃ ..?)
์ ๊ทธ๋ฆฌ๊ณ ๋ง์ฝ ๋น๋ฐ๋ฒํธ ์ธ์ฆ์ ssh์์ ์ฌ์ฉํ ๊ฑฐ๋ผ๋ฉด (์๋ง ๋ค๋ค ์ฐ์๊ฒ ์ง๋ง)
'PasswordAuthentication no'๋ฅผ 'PasswordAuthentication yes'๋ก ๋ฐ๊ฟ์ฃผ์ ์ผ ํฉ๋๋ค.
5. ๋ฐฉํ๋ฒฝ ์ค์ ํด์
ssh๊ฐ ์คํ์ด ๋๋ค ํ๋๋ผ๋, ๋ฐฉํ๋ฒฝ์ ํด๋น port๊ฐ ์ด๋ ค์์ง ์์ผ๋ฉด ์ฐ๊ฒฐ์ด ์๋ฉ๋๋ค.
๊ทธ๋ฌ๋ฉด ์๋ฒ๋ ์ผ์ก๋๋ฐ ์ฐ๊ฒฐ์ด ์๋๋ ์ฐธ ์ ๊ธฐํ ์ํฉ์ด ํผ์ณ์ง๋ฏ๋ก, ๋ฏธ์ฐ์ ๋ฐฉ์งํด์ฃผ๊ธฐ์ํด ๋ฐฉํ๋ฒฝ์ ๋ฏธ๋ฆฌ ํ์ด์ค์๋ค.
firewall-cmd --add-port=22/tcp --zone=public --permanent
# 22๋ฒ tcp ํฌํธ๋ฅผ public์์ญ์ ๋ํ์ฌ ์์ํ ํ์ฉํฌํธ๋ก ์ถ๊ฐํ๋ค
firewall-cmd --reload
# ๋ฐฉํ๋ฒฝ ์ค์ ์ ๋ค์ ๋ก๋ํ๋ค (=์ง์ ๊น์ง์ ๋ณ๊ฒฝ์ฌํญ์ ์ ์ฉํ๋ค)
firewall-cmd --list-ports
# ๋ฐฉํ๋ฒฝ์ ํ์ฌ '์ ์ฉ๋' ํฌํธ์ค์ ์ ํ์ธํ๋ค
# ์ฌ๊ธฐ์์๋ 22/tcp๊ฐ ๋จ๋ฉด ์ฑ๊ณต
+) ์ถ๊ฐ๋ก ์ด ๋ด์ฉ์ ๊ณต๋ถํ๊ธฐ ์ํด ๋ดค๋ ํฌ์คํ ์ด๋ค
https://www.lesstif.com/system-admin/rhel-centos-firewall-22053128.html
6. ssh์๋น์ค ๊ตฌ๋
์ด์ ๋ชจ๋ ์ค์ ์ ๋๋ฌ์ต๋๋ค!
์ฆ๊ฒ๊ฒ ์๋น์ค๋ฅผ ๊ตฌ๋ํด๋ด ์๋ค
systemctl start sshd.service
7. ๋ฌธ์ ํด๊ฒฐ
1) systemctl ์๋ฌ: Port Permission Denied
Job for sshd.service failed because the control process exited with error code. See "systemctl status sshd.service" and "journalctl -xe" for details.
=> ๋ญ๊ฐ ๋ฌธ์ ๊ฐ ์๋๊ฒ ์ ๋๋ค.
journalctl -xe๋ก ๋ชจ๋ ๋ก๊ทธ๋ฅผ ํ์ธํ๊ฑฐ๋, journalctl --since "-1min"์ ํตํด ํ์ธํด๋ด ์๋ค.
์ ์๊ฒฝ์ฐ 'Port XXXX: Permission Denied'์๊ณ ,
์๋ ๋ช ๋ น์ด๋ก ssh ์๋น์ค๋ฅผ ๊ตฌ๋ํ์ฌ ํด๊ฒฐํ์ต๋๋ค.
# setenforce 0
# getenforce :: ํ์ธ
# service sshd restart
# setenforce 1
setenforce ๋ช ๋ น์ด๋ CentOS์์ ์ฌ์ฉ๋๋ SELinux์ ๋ํ ๋์๋ชจ๋๋ฅผ ์ ์ enforce ๋ชจ๋์์ Permissive ๋ชจ๋๋ก ๋ณ๊ฒฝํ๋๊ฑด๋ฐ,
์์์ ์ผ๋ก ๋ชจ๋๋ฅผ ๋ณ๊ฒฝํจ์ผ๋ก์ SELinux์ ๊ท์น์ ์์์ ์ผ๋ก ์ฐํํ ์ ์๋ค๊ณ ํฉ๋๋ค.
SELinux ์์ฒด๋ Linux ์์ฒด์ ๋ณด์์ ๊ฐํํ๋ ์ปค๋์ด๋ฏ๋ก ๋๊ธฐ๋ณด๋ค๋
ํ์ํ ๋๋ง๋ค ์ ์ ๋ชจ๋๋ฅผ ๋ณ๊ฒฝํ์ฌ ์๋น์ค ์ค์ ์ ๋ณ๊ฒฝํ๊ณ
๋ค์ ์์๋ณต๊ตฌ ์ํค๋ ๊ฒ์ด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค.
setenforce 1 ์ต์ ์ดํ์ nodejs ์๋ฒ๊ฐ ๊ณ์ ์ฃฝ์ด๋ฒ๋ฆฌ๋ ๋ฌธ์ ์ ์ ํ์ธํ์ต๋๋ค.
ํด๋น ํ์์ ํ์ธํด๋ณด๋ SELinux ์์ฒด์์ nodejs์ ์ปค๋์คํ์ ๋น์ ์ํ๋์ผ๋ก ๊ฐ์ฃผํ์ฌ nodejs ์๋ฒ ๊ตฌ๋์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
๊ด๋ จ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด, ์ฐ์ SELinux๋ฅผ ๋นํ์ฑํํ๊ณ , ์ฐจํ ํฌ์คํ ์์ ์ค์ ํ๋ฉฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ์ ํฉ๋๋ค.