Centos 에서 Rocky 로 바꿔타면서 문제가 여러개 있었는데
구 forklift에서 sftp가 연결되지 않는다는 점이었다.
터미널 ssh는 수정을 해서 가능하다
cursor vscode등 여기서도 손을 일일히 봐줘야 한다.
(우분투도 잘 연결된다고 ㅜㅜ)
더 짜증나는것은 해당서버는 테스트서버라는것이다.
본서버라면 git만 써도 되니까 상관이 없는데 테스트서버는 별짓을 다 해봐야 하니까 느무느무느무 불편하다.
fork lift4를 쓰면 상관없다고 한다. (하지만 이 회사의 가격정책이 너무나 마음에 안든다. 1년만 업그레이드 지원을 한다나.... 아니면 돈을 더 내라고한다. )
윈도우는 모르겠지만 맥에는 forklift 만한게 없다.

그래서 ssh 보안을 내리고 차선책으로 포트변경과 접속키로 대응하기로 했다.
아래와 같이 정리되었다.
Rocky Linux 9 · SSH/SFTP 불편 해결 + 보안 강화 정리
목표: Rocky 9(OpenSSH 최신)에서 구형 SFTP(예: ForkLift 구버전) 호환을 위해 예전 알고리즘(ssh-rsa)을 부분적으로 허용하되, SSH 포트 변경과 키 인증 기반으로 보안을 보완한다.
(IP/포트는 모두 @@@@로 표기)
1) Rocky 9에서 SFTP(구형 클라이언트) 연결이 불편한 이유
- Rocky Linux 9는 OpenSSH가 최신이라 기본 키/알고리즘이 ed25519, rsa-sha2-* 중심.
- 구형 SFTP 클라이언트(ForkLift 구버전 등)는 최신 HostKey/Pubkey 알고리즘을 제대로 지원하지 못해 연결 실패가 발생할 수 있음.
- 해결책: 서버에서 ssh-rsa를 다시 허용(보안 하향)하거나, 도구 업그레이드(ForkLift 최신)로 해결.
2) (타협안) ssh-rsa 허용 + SSH 포트 변경으로 보안 보완
ssh-rsa 허용은 보안이 내려가므로 테스트/개인 서버 한정 권장. 대신 SSH 포트를 바꿔 무차별 대입 공격(스캔)을 체감 수준으로 줄인다.
2-1) ssh-rsa 허용 (서버 전체 또는 제한적 Match)
/etc/ssh/sshd_config에 추가
HostKeyAlgorithms +ssh-rsa
PubkeyAcceptedAlgorithms +ssh-rsa
# (권장) 특정 사용자만 허용하는 방식 예시
# Match User git
# HostKeyAlgorithms +ssh-rsa
# PubkeyAcceptedAlgorithms +ssh-rsa
2-2) SSH 포트 변경(보안 보완)
/etc/ssh/sshd_config에서 포트 추가(테스트 동안 22 유지 권장)
Port 22
Port @@@@
SELinux 포트 허용
semanage port -a -t ssh_port_t -p tcp @@@@
# 이미 등록되어 있으면:
semanage port -m -t ssh_port_t -p tcp @@@@
방화벽 포트 오픈
firewall-cmd --permanent --add-port=@@@@/tcp
firewall-cmd --reload
설정 검사 및 sshd 재시작
sshd -t
systemctl restart sshd
새 포트 접속 테스트
ssh -p @@@@ user@@@@@
※ 새 포트로 접속 확인 후, 22번을 닫고 싶다면 sshd_config에서 Port 22 제거 + 방화벽에서 ssh(22) 허용 제거를 진행.
3) “root 로그인은 꼭 필요”할 때의 현실적인 보안 조합
root 로그인을 완전히 끄지 않고도 안전하게 운영하려면: root는 키로만 로그인, 비밀번호 로그인은 차단이 핵심.
/etc/ssh/sshd_config 권장 설정
PermitRootLogin prohibit-password
PasswordAuthentication no
PubkeyAuthentication yes
MaxAuthTries 3
- PermitRootLogin prohibit-password: root 로그인 허용, 단 비밀번호 금지(키만)
- PasswordAuthentication no: 모든 계정 비밀번호 로그인 차단
- PubkeyAuthentication yes: 키 인증 허용
- MaxAuthTries 3: 인증 시도 횟수 제한
3-1) PasswordAuthentication no 적용 전 필수 준비
- 먼저 키 로그인이 되는지 실제로 테스트
- 특히 root를 유지할 거면 root 계정 키가 있어야 함
- 키 로그인 확인 후에만 PasswordAuthentication no 적용 (잠금 방지)
root 키 생성(없으면)
ls -al /root/.ssh/id_ed25519 /root/.ssh/id_ed25519.pub
# 없으면 생성
ssh-keygen -t ed25519 -f /root/.ssh/id_ed25519 -N ""
root 키 로그인 테스트
ssh -i /root/.ssh/id_ed25519 -p @@@@ root@@@@@
최종 적용(문법 검사 후 재시작)
sshd -t
systemctl restart sshd
4) Git push 차단/해제(추가로 나온 이슈 요약)
git push -v 시 “🚫 서버에서는 git push 금지”가 뜨는 경우, 권한/키 문제가 아니라 중앙 저장소(bare repo)의 hook에서 차단 중인 상태.
차단 훅 확인
cd /srv/git/project.git/hooks
ls -al
grep -R "git push 금지\|🚫" -n . 2>/dev/null
임시 해제(가장 안전: 삭제 대신 이름 변경)
mv pre-receive pre-receive.disabled 2>/dev/null
mv update update.disabled 2>/dev/null
마무리
- 구형 SFTP 호환이 필요하면 ssh-rsa 허용이 가장 확실하지만 보안 하향.
- 대신 SSH 포트 변경 + 키 인증(비밀번호 차단)로 보안을 보완.
- root 로그인이 필요하면 PermitRootLogin prohibit-password 조합이 현실적인 타협점.
'Programing & OS' 카테고리의 다른 글
| 내가 조심해야 할 (“자기 타입을 자각한 중·고급 개발자의 운영 매뉴얼”) 탈출구 만들기 (0) | 2026.02.06 |
|---|---|
| SSH 키 배포(운영) 방식 정리 (0) | 2026.02.05 |
| 추가 보안 작업 - 2부 - (0) | 2026.02.05 |
| 디비로 할까 메모리에 넣고 계산할까? WEB progamming도 이제 난이도가 높다 (0) | 2026.02.05 |
| CentOS → Rocky Linux 9로 가는 이유 (0) | 2026.01.30 |