VS Code SFTP 연결 완벽 가이드: SSH 설정부터 퍼블릭키 인증까지
설치된 확장 프로그램: SFTP Natizyskunk
▷ sftp 서버 설정
sftp가 ssh 서버에서 설정이 되어 있지 아니하면 아래와 같이 설정 후 재싲가 해야 한다.
vim /etc/ssh/ssh_config
Subsystem sftp /usr/lib/openssh/sftp-server
systemctl restart sshd
▷ 잘 설정 했는데 안된다면 .bashrc 수정 (중요)
vi ~/.bashrc
# SFTP / non-interactive session 보호
case $- in
*i*) ;;
*) return;;
esac
▷ 윈도우에서 연결 확인
sftp -P 22 root@123.4.0.1
Connected to 123.4.0.1.
sftp> exit
---
● 퍼블릭키 생성해서 사용하는 방법
▷ 윈도우 로컬에서
ssh-keygen -t ed22239 -f C:\Users\utf8pc\.ssh\testpublic_key
▷ 퍼블릭키 복사
type C:\Users\utf8pc\.ssh\testpublic_key.pub
ssh-ed22239 AAAAsdagfregczxvhgsrdgbrdsbysdrctesdrtcsercte test@DESKTOP-12
▷ 생성된 퍼블릭키 서버에 복사 붙어 넣기
sudo su - testpublic
mkdir -p ~/.ssh
chmod 700 ~/.ssh
vi ~/.ssh/authorized_keys
▷ 권한 설정(매우 중요)
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
▷ 접속 테스트
sftp -i C:\Users\utf8pc\.ssh\testpublic_key testpublic@123.4.0.1
아래예제는 ftp, sftp, sftp - 인증키 방식의 예
▷ sftp.json
[
{
"name": "_TEMP_123.4.0.1 - test1",
"context": "_TEMP_123.4.0.1 - test1",
"host": "123.4.0.1",
"protocol": "sftp",
"port": 22,
"username": "test2",
"password": "pwtest2",
"remotePath": "/www/test12/",
"uploadOnSave": false,
"useTempFile": false,
"openSsh": false
},
{
"name": "_TEMP_123.4.0.1 - ftp",
"context": "_TEMP_123.4.0.1 - ftp",
"host": "123.4.0.1",
"protocol": "ftp",
"port": 21,
"username": "test2",
"password": "pwtest",
"remotePath": "/www/test2/public_html/",
"uploadOnSave": false,
"useTempFile": false,
"openSsh": false
},
{
"name": "_TEMP_123.4.0.1 - testpublic",
"context": "_TEMP_123.4.0.1 - testpublic",
"host": "123.4.0.1",
"protocol": "sftp",
"port": 22,
"username": "testpublic",
"privateKeyPath": "C:\\Users\\utf8pc\\.ssh\\testpublic_key",
"remotePath": "/www/test1/",
"uploadOnSave": false,
"useTempFile": false,
"openSsh": false
}
]
