humy2833 / FTP-Simple

visual studio code extension
109 stars 39 forks source link

서버파일에 대한 Delete 미작동 문제 등 #125

Open wangtae opened 6 years ago

wangtae commented 6 years ago

안녕하세요. 만들어 주신 플로그인을 사용중인데요.

개인적으로 vscode sftp 플러그인 중 가장 좋은 프로그램인것 같습니다.

사용하면서 몇 가지 문제들이 발생하여 문의 드립니다.

  1. VSCode의 좌측 탐색기에서 특정 파일을 마우스 오른쪽 버튼을 클릭한 다음 ftp-simple : Delete - 기능을 사용하면 탐색기에서는 파일이 삭제된 것으로 표시되지만 실제 서버에서는 파일 삭제가 안됩니다.

출력 콘솔(Ctrl + Shift + U)에서는 해당 기능 사용시 "Deleted : /public_html/etc/test/18/0205-test.php" 처럼 삭제되었다는 메시지가 정상적으로 실행됩니다.

Ctrl + Shift + P > ftp-simple : Delete 명령을 사용해서 특정 파일을 선택한 다음 OK를 선택해도 출력창에는 Deleted 되었다고 표시되지만 실제로는 삭제가 안됩니다.

참고로 다른 ftp client나 editplus 등을 이용시 파일 삭제 기능이 잘 작동되고 있습니다.

config 값은 다음과 같습니다. { "name": "/etc/test", "host": "hostname", "port": 22, "type": "sftp", "username": "user_id", "password": "user_pw", "path": "/public_html/etc/test", "autosave": true, "confirm": false, "backup": "c:/Users/xxxx/OneDrive/VSCode/sftp-backup/rootetctest" }

setting 값은 다음과 같습니다. "ftp-simple" : { "remote-workspace" : "c:/Users/xxxx/OneDrive/VSCode/sftp", "remote-workspace-load-all" : false }

  1. VSCode 탐색기에서 마우스 오른쪽 버튼 클릭 후 파일이름을 변경하면 서버에는 선택한 파일의 이름이 변경되는 것이아니라 선택했던 파일은 그대로 있고, 변경하려고 했던 이름으로 새로운 파일이 생성됩니다. 이건 원래 이런 방식으로 작동하는게 맞는건가요? 그렇다면 ftp-simple : RENAME 와 같은 기능으로 파일이 새로 생성되지 않고 특정 파일 명을 변경할 수 있는 기능은 구현이 어려울까요?

위 두가지 문제로 인하여 파일이름을 변경하거나, 삭제해야 할 경우 다른 sftp 프로그램을 별도로 사용해야 하는 상황입니다.

humy2833 commented 6 years ago

사용해주셔서 감사합니다.

  1. 제가 테스트를 해보니 정상동작을 해서 이거 뭐라고 답변을 드려야할지 모르겠네요. 혹시나 동시에 여러명이 remote open 으로 같은 경로를 사용하고 계신건 아니실테고요... 혹시 FTP 서버 환경이 어떻게 되시나요?

  2. 현재 다른 우회수단으론 해당 파일을 원격으로 save 하신 후 delete 하시면 되는데, delete 가 안된다고 하시니......거참 난감한 상황이네요.

답변을 제대로 못 해드려서 여러모로 죄송하기만 합니다. 시간이 없어서 플러그인을 건들지 못하고 있는 상황인데요, 차후 기능을 추가해보도록 하겠습니다. 감사합니다.

wangtae commented 6 years ago

시간 되실때 아래 내용 한번 확인해 주세요.

현재 서버는 CentOS이고, sftp 전용 계정을 생성하여 사용중입니다.

해당 계정은 ssh 는 사용하지 못하도록 etc/password에서 bin/false로 설정하였습니다.

다음은 계정성생 방법과 sshd_config 설정 내용입니다.

groupadd -r sftp-only

useradd -m -G sftp-only -d /home -s /bin/false -c ‘SFTP account for

username’ username or usermod -a -G sftp-only -s /bin/false username

vim /etc/ssh/sshd_config

// 아래는 sshd_config의 내용입니다.

HostKeys for protocol version 2

HostKey /etc/ssh/ssh_host_rsa_key

HostKey /etc/ssh/ssh_host_dsa_key

Lifetime and size of ephemeral version 1 server key

KeyRegenerationInterval 1h

ServerKeyBits 1024

Logging

obsoletes QuietMode and FascistLogging

SyslogFacility AUTH

SyslogFacility AUTHPRIV

Authentication:

LoginGraceTime 1m PermitRootLogin no

StrictModes yes

MaxAuthTries 20

MaxSessions 10

RSAAuthentication yes

PubkeyAuthentication yes

AuthorizedKeysFile .ssh/authorized_keys

AuthorizedKeysCommand none

AuthorizedKeysCommandRunAs nobody

For this to work you will also need host keys in /etc/ssh/ssh_known_hosts

RhostsRSAAuthentication no

similar for protocol version 2

HostbasedAuthentication no

Change to yes if you don't trust ~/.ssh/known_hosts for

RhostsRSAAuthentication and HostbasedAuthentication

IgnoreUserKnownHosts no

Don't read the user's ~/.rhosts and ~/.shosts files

IgnoreRhosts yes

To disable tunneled clear text passwords, change to no here!

PasswordAuthentication yes

PermitEmptyPasswords no PasswordAuthentication yes

Change to no to disable s/key passwords

ChallengeResponseAuthentication yes

ChallengeResponseAuthentication no

Kerberos options

KerberosAuthentication no

KerberosOrLocalPasswd yes

KerberosTicketCleanup yes

KerberosGetAFSToken no

KerberosUseKuserok yes

GSSAPI options

GSSAPIAuthentication no

GSSAPIAuthentication yes

GSSAPICleanupCredentials yes

GSSAPICleanupCredentials yes

GSSAPIStrictAcceptorCheck yes

GSSAPIKeyExchange no

Set this to 'yes' to enable PAM authentication, account processing,

and session processing. If this is enabled, PAM authentication will

be allowed through the ChallengeResponseAuthentication and

PasswordAuthentication. Depending on your PAM configuration,

PAM authentication via ChallengeResponseAuthentication may bypass

the setting of "PermitRootLogin without-password".

If you just want the PAM account and session checks to run without

PAM authentication, then enable this but set PasswordAuthentication

and ChallengeResponseAuthentication to 'no'.

UsePAM no

UsePAM yes

Accept locale-related environment variables

AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE AcceptEnv XMODIFIERS

AllowAgentForwarding yes

AllowTcpForwarding yes

GatewayPorts no

X11Forwarding no

X11Forwarding yes

X11DisplayOffset 10

X11UseLocalhost yes

PrintMotd yes

PrintLastLog yes

TCPKeepAlive yes

UseLogin no

UsePrivilegeSeparation yes

PermitUserEnvironment no

Compression delayed

ClientAliveInterval 3000

ClientAliveCountMax 3

ShowPatchLevel no

UseDNS yes

PidFile /var/run/sshd.pid

MaxStartups 10:30:100

PermitTunnel no

ChrootDirectory none

no default banner path

Banner /etc/issue

AllowUsers

AllowUsers username

override default of no subsystems

Subsystem sftp internal-sftp -f local2 -l INFO

Example of overriding settings on a per-user basis

Match Group sftp-only ChrootDirectory /home/%u AllowTCPForwarding no X11Forwarding no ForceCommand internal-sftp

Personal Info. C.P : +82-10-7900-0852 E-Mail : wangtae@gmail.com

Office Info. Address : 916, 33, Seongsuil-ro 10-gil, Seongdong-gu, Seoul, Korea TEL : +82-2-1661-7881 (Head Office) FAX : +82-2-6280-7661 E-Mail : help@j-touch.com SITE : www.j-touch.com

이 이메일이 담고 있는 정보는 기밀사항이며 법적으로 보호받는 내용을 포함하고 있을수 있습니다. 이 이메일은 오직 지정된 수신인만을 위한 것이며 제3자에 의한, 제3자로의 정보누출, 복사 및 배포는금지됩니다. 만일 잘못에 의해 이 이메일을 받았을 경우에는 즉시 송신인에게 이메일회신을 통해 그 잘못을 알려주시기 바라고 원본과 복사본은 영구삭제, 관련된 출력물은 즉시 파기시켜 주시기 바랍니다.

The information in this Internet email is confidential and may be legally privileged. It is intended solely for the addressee, and any disclosure, copying, and distribution by or to third party are prohibited. If you have received this email in error, please immediately notify the error to the sender by re-email and permanently delete the original and any copy of this email and any printout there of. Thank you very much for your cooperations.

2018-03-06 10:51 GMT+09:00 YoungJae Lee notifications@github.com:

사용해주셔서 감사합니다.

1.

제가 테스트를 해보니 정상동작을 해서 이거 뭐라고 답변을 드려야할지 모르겠네요. 혹시나 동시에 여러명이 remote open 으로 같은 경로를 사용하고 계신건 아니실테고요... 혹시 FTP 서버 환경이 어떻게 되시나요? 2.

현재 다른 우회수단으론 해당 파일을 원격으로 save 하신 후 delete 하시면 되는데, delete 가 안된다고 하시니......거참 난감한 상황이네요.

답변을 제대로 못 해드려서 여러모로 죄송하기만 합니다. 시간이 없어서 플러그인을 건들지 못하고 있는 상황인데요, 차후 기능을 추가해보도록 하겠습니다. 감사합니다.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/humy2833/FTP-Simple/issues/125#issuecomment-370632789, or mute the thread https://github.com/notifications/unsubscribe-auth/AH1zLpTdgPHCSbc6j9Z7r5EQkYyBBFz1ks5tbeuWgaJpZM4ScLt6 .

humy2833 commented 6 years ago

아 삭제하는 로직이 커맨드 명령어라서 그랬던것 같네요 해당 기능을 조금 수정하였습니다. 그리고 rename 기능도 추가하였습니다. 0.6.0 버전으로 업데이트 하신 후 확인해보세요 감사합니다.

wangtae commented 6 years ago

와! 정말 감사합니다.

완벽하네요. ^^

사용중 좋은 아이디어 생기면 또 알려드릴게요

감사합니다.

2018-03-21 14:32 GMT+09:00 YoungJae Lee notifications@github.com:

아 삭제하는 로직이 커맨드 명령어라서 그랬던것 같네요 해당 기능을 조금 수정하였습니다. 그리고 rename 기능도 추가하였습니다. 0.6.0 버전으로 업데이트 하신 후 확인해보세요 감사합니다.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/humy2833/FTP-Simple/issues/125#issuecomment-374837664, or mute the thread https://github.com/notifications/unsubscribe-auth/AH1zLnJl0b149U_BuFpCjVOmWeLl4aNwks5tgeX_gaJpZM4ScLt6 .