SFTP ਉੱਤੇ scp: ਸੱਚਮੁੱਚ ਹੱਲ ਹੋਣ ਵਾਲੇ ਰਿਮੋਟ ਪਾਥ ਲਿਖਣਾ
ਆਧੁਨਿਕ scp SFTP ਰਾਹੀਂ ਟ੍ਰਾਂਸਫਰ ਕਰਦਾ ਹੈ, ਇਸ ਲਈ ਟਿਲਡੇ ਵਿਸਤਾਰ ਅਤੇ ਵਾਈਲਡਕਾਰਡ ਵੱਖਰੇ ਵਿਵਹਾਰ ਕਰਦੇ ਹਨ। ਸਪਸ਼ਟ ਸਰਵਰ ਪਾਥ ਲਿਖੋ ਅਤੇ ਪ੍ਰੋਟੋਕੋਲ ਜਾਣ-ਬੁੱਝ ਕੇ ਚੁਣੋ।
ਸਾਲਾਂ ਤੋਂ ਸਕ੍ਰਿਪਟ ਵਿੱਚ ਚੱਲਦਾ scp ਕਮਾਂਡ ਮੌਜੂਦਾ ਕਲਾਇੰਟ ਉੱਤੇ ਪਾਥ ਗਲਤੀ ਨਾਲ ਫੇਲ੍ਹ ਹੋ ਸਕਦਾ ਹੈ ਜਿਸਦਾ ਟਨਲ ਨਾਲ ਕੋਈ ਸੰਬੰਧ ਨਹੀਂ। VPN ਨੇ ਬਾਈਟ ਪਹੁੰਚਾਏ; ਕਲਾਇੰਟ ਨੇ ਸਰਵਰ ਤੋਂ ਉਹ ਨਾਮ ਮੰਗਿਆ ਜੋ ਸਰਵਰ ਹੱਲ ਨਹੀਂ ਕਰ ਸਕਿਆ। ਮੌਜੂਦਾ OpenSSH scp ਡਿਫਾਲਟ ਰੂਪ ਵਿੱਚ SFTP ਰਾਹੀਂ ਟ੍ਰਾਂਸਫਰ ਕਰਦਾ ਹੈ, ਅਤੇ SFTP ਪੁਰਾਣੇ ਪ੍ਰੋਟੋਕੋਲ ਵਾਂਗ ਸ਼ੈੱਲ-ਸ਼ੈਲੀ ਵਿਸਤਾਰ ਨਹੀਂ ਕਰਦਾ। ਆਪਣੇ ਖਾਤੇ ਤੋਂ ਕਮਾਂਡ ਨੂੰ ਬਾਹਰ ਵੱਲ ਟਰੇਸ ਕਰਨ ਨਾਲ ਪਤਾ ਲੱਗਦਾ ਹੈ ਕਿ ਪਾਥ ਅਸਲ ਵਿੱਚ ਕਿੱਥੇ ਵਿਆਖਿਆ ਹੁੰਦਾ ਹੈ।
ਖਾਤੇ ਤੋਂ ਸ਼ੁਰੂ ਕਰੋ, ਫਿਰ ਉਸ ਡਾਇਰੈਕਟਰੀ ਤੋਂ ਜਿੱਥੇ ਇਹ ਲਿਖ ਸਕਦਾ ਹੈ
ਕੋਲਨ ਦੋ ਨਾਮਸਥਾਨ ਵੱਖ ਕਰਦਾ ਹੈ, ਅਤੇ ਸਿਰਫ਼ ਖੱਬਾ ਪਾਸਾ ਉਸ ਮਸ਼ੀਨ ਦਾ ਹੈ ਜਿਸ ਉੱਤੇ ਤੁਸੀਂ ਟਾਈਪ ਕਰ ਰਹੇ ਹੋ। ਇਸ ਤੋਂ ਬਾਅਦ ਸਭ ਕੁਝ ਸਰਵਰ ਹੱਲ ਕਰਦਾ ਹੈ, ਉਸ ਖਾਤੇ ਅਧੀਨ ਜਿਸ ਨਾਲ ਤੁਸੀਂ ਪ੍ਰਮਾਣਿਤ ਹੋਏ, ਉਸ ਫਾਈਲਸਿਸਟਮ ਦ੍ਰਿਸ਼ ਦੇ ਅੰਦਰ ਜੋ ਉਸ ਖਾਤੇ ਕੋਲ ਹੈ। ਕਮਾਂਡ ਬਣਾਉਣ ਤੋਂ ਪਹਿਲਾਂ ਦੋਵਾਂ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ, ਕਿਉਂਕਿ ਪ੍ਰਸ਼ਾਸਕ ਲਈ ਸਹੀ ਪਾਥ ਟ੍ਰਾਂਸਫਰ ਵਰਤੋਂਕਾਰ ਲਈ ਆਪਣੇ ਆਪ ਸਹੀ ਨਹੀਂ ਹੁੰਦਾ। ਇਹੀ ਅੰਤਰ ਨੈੱਟਵਰਕ ਖਰਾਬੀਆਂ ਵਰਗੀਆਂ ਦਿਖਣ ਵਾਲੀਆਂ ਜ਼ਿਆਦਾਤਰ ਇਜਾਜ਼ਤ ਗਲਤੀਆਂ ਦਾ ਸਰੋਤ ਹੈ।
ਸਰਵਰ ਨੂੰ ਇਸਦਾ ਆਪਣਾ ਦ੍ਰਿਸ਼ ਪੁੱਛੋ: ssh [email protected] pwd ਅਤੇ ssh [email protected] ls -ld /srv/archive। ਜੇ ਦੂਜੀ ਕਮਾਂਡ ਇਜਾਜ਼ਤ ਰੱਦ ਹੋਣ ਦੀ ਰਿਪੋਰਟ ਕਰਦੀ ਹੈ, ਤਾਂ ਟਨਲ ਠੀਕ ਹੈ ਅਤੇ ਉਸ ਖਾਤੇ ਲਈ ਪਾਥ ਵਰਤੋਂਯੋਗ ਨਹੀਂ। ਟ੍ਰਾਂਸਫਰ ਅੱਗੇ ਵਧ ਸਕੇ ਇਸ ਲਈ ਇਜਾਜ਼ਤਾਂ ਫੈਲਾਉਣ ਦੀ ਬਜਾਏ ਮਾਲਕੀ ਠੀਕ ਕਰੋ ਜਾਂ ਹੋਰ ਮੰਜ਼ਿਲ ਚੁਣੋ।
ਸੀਮਿਤ SFTP ਸੰਰਚਨਾ chroot ਨੂੰ ਫਾਈਲਸਿਸਟਮ ਦੀ ਜੜ੍ਹ ਵਜੋਂ ਪੇਸ਼ ਕਰ ਸਕਦੀ ਹੈ। ਉਸ ਦ੍ਰਿਸ਼ ਦੇ ਅੰਦਰ ਪੂਰਨ ਪਾਥ chroot ਦੇ ਅੰਦਰ ਪੂਰਨ ਹੁੰਦਾ ਹੈ, ਜੋ ਪ੍ਰਸ਼ਾਸਕ ਹੋਸਟ ਉੱਤੇ ਦੇਖਦਾ ਹੈ ਉਹੀ ਸਥਾਨ ਨਹੀਂ।
ਕੋਲਨ ਦੇ ਦੋਵੇਂ ਪਾਸੇ ਸਪਸ਼ਟ ਨਾਮ ਦਿਓ
ਅਪਲੋਡ ਨੂੰ ਰਿਮੋਟ ਫਾਈਲ ਨਾਮ ਦੱਸਣਾ ਚਾਹੀਦਾ ਹੈ, ਸਥਾਨਕ ਅਧਾਰ ਨਾਮ ਦੂਜੇ ਪਾਸੇ ਸਵੀਕਾਰਯੋਗ ਹੋਣ ਦੀ ਧਾਰਨਾ ਦੀ ਬਜਾਏ।
scp q3-invoice.csv [email protected]:/home/transfer/drop/q3-invoice.csvਡਾਊਨਲੋਡ ਨੂੰ ਬਿਲਕੁਲ ਇਸੇ ਕਾਰਨ ਸਥਾਨਕ ਮੰਜ਼ਿਲ ਦੱਸਣੀ ਚਾਹੀਦੀ ਹੈ। ਦੋਵੇਂ ਨਾਮਸਥਾਨ ਸੁਤੰਤਰ ਹਨ, ਅਤੇ ਉਹਨਾਂ ਦੇ ਮੇਲ ਖਾਣ ਦੀ ਧਾਰਨਾ ਕਰਨ ਵਾਲੀ ਸਕ੍ਰਿਪਟ ਪਹਿਲੀ ਵਾਰ ਤਦ ਟੁੱਟਦੀ ਹੈ ਜਦੋਂ ਰਿਮੋਟ ਰੁੱਖ ਵੱਖਰਾ ਖਾਕਾ ਵਰਤਦਾ ਹੈ।
scp [email protected]:/srv/archive/2026-q3.csv ./2026-q3.csvਸੰਭਾਲੀ ਜਾਂਦੀ ਸਕ੍ਰਿਪਟ ਵਿੱਚ ~otheruser ਤੋਂ ਬਚੋ। ਹੋਰ ਖਾਤੇ ਦੀ ਹੋਮ ਡਾਇਰੈਕਟਰੀ ਦਾ ਵਿਸਤਾਰ ਕਰਨਾ ਰਿਮੋਟ-ਸ਼ੈੱਲ ਵਿਸ਼ੇਸ਼ਤਾ ਸੀ, ਅਤੇ SFTP ਸਰਵਰ ਉਸਦੀ ਨਕਲ ਕਰਨ ਵਾਲਾ ਐਕਸਟੈਂਸ਼ਨ ਲਾਗੂ ਨਹੀਂ ਕਰ ਸਕਦਾ। ਉਹ ਪੂਰਨ ਪਾਥ ਲਿਖੋ ਜੋ ਖਾਤਾ ਅਸਲ ਵਿੱਚ ਖੋਲ੍ਹ ਸਕਦਾ ਹੈ, ਅਤੇ ਖਾਲੀ ਥਾਂ ਵਾਲੇ ਸਥਾਨਕ ਪਾਥ ਸਰਵਰ ਉੱਤੇ ਸ਼ੈੱਲ ਲਈ ਲਿਖੀਆਂ ਕੋਟ ਪਰਤਾਂ ਦੀ ਨਕਲ ਕਰਨ ਦੀ ਬਜਾਏ ਕੋਟਾਂ ਵਿੱਚ ਰੱਖੋ।
ਜਾਣੋ ਤੁਹਾਡਾ scp ਅਸਲ ਵਿੱਚ ਕਿਹੜਾ ਪ੍ਰੋਟੋਕੋਲ ਵਰਤਦਾ ਹੈ
OpenSSH 9.0 ਤੋਂ ਕਲਾਇੰਟ ਡਿਫਾਲਟ ਰੂਪ ਵਿੱਚ SFTP ਵਰਤਦਾ ਹੈ, ਅਤੇ ਡਿਸਟਰੀਬਿਊਸ਼ਨ ਉਸ ਵਿਵਹਾਰ ਨੂੰ ਆਪਣੇ ਸਮਾਂ-ਸਾਰਣੀ ਅਨੁਸਾਰ ਅਪਣਾਉਂਦੇ ਜਾਂ ਬੈਕਪੋਰਟ ਕਰਦੇ ਹਨ। ਵਰਜ਼ਨ ਸਟ੍ਰਿੰਗ ਦੱਸਦੀ ਹੈ ਕਿ ਕਲਾਇੰਟ ਦਾ ਕੀ ਇਰਾਦਾ ਹੈ, ਪਰ ਵਿਕਰੇਤਾ ਦੀ ਬਿਲਡ upstream ਤੋਂ ਵੱਖ ਹੋ ਸਕਦੀ ਹੈ, ਇਸ ਲਈ ਤੁਸੀਂ ਅਸਲ ਵਿੱਚ ਚਲਾਉਂਦੇ ਕਲਾਇੰਟ ਦੀ ਜਾਂਚ ਕਰੋ: ssh -V।
ਦੋਵੇਂ ਪ੍ਰੋਟੋਕੋਲ ਨਾਮ ਵੱਖਰੇ ਤਰੀਕੇ ਨਾਲ ਹੱਲ ਕਰਦੇ ਹਨ। ਪੁਰਾਣਾ SCP ਰਿਮੋਟ ਵਰਤੋਂਕਾਰ ਸ਼ੈੱਲ ਨੂੰ ਪਾਥ ਦਾ ਵਿਸਤਾਰ ਕਰਨ ਲਈ ਕਹਿੰਦਾ ਹੈ, ਇਸ ਲਈ ਵਾਈਲਡਕਾਰਡ ਅਤੇ ਟਿਲਡੇ ਉਹ ਸ਼ੈੱਲ ਆਪਣੇ ਨਿਯਮਾਂ ਨਾਲ ਸੰਭਾਲਦਾ ਹੈ। SFTP ਇਸਦੀ ਬਜਾਏ ਫਾਈਲ-ਟ੍ਰਾਂਸਫਰ ਕਾਰਵਾਈਆਂ ਜਾਰੀ ਕਰਦਾ ਹੈ, ਇਸ ਲਈ ਵਾਈਲਡਕਾਰਡ ਜਾਂ ਤਾਂ ਕਲਾਇੰਟ ਫੈਲਾਉਂਦਾ ਹੈ ਜਾਂ ਬਿਲਕੁਲ ਨਹੀਂ ਫੈਲਦਾ। ਦੋਵੇਂ SSH ਦੇ ਅੰਦਰ ਇੱਕੋ ਮਸ਼ੀਨ ਤੱਕ ਜਾਂਦੇ ਹਨ, ਇਸ ਲਈ ਇੱਕ ਹੋਸਟ ਦੋ ਕਲਾਇੰਟਾਂ ਅਧੀਨ ਵੱਖਰਾ ਵਿਵਹਾਰ ਕਰ ਸਕਦਾ ਹੈ।
scp -v ਉਹ ਸਬਸਿਸਟਮ ਛਾਪਦਾ ਹੈ ਜਿਸਦੀ ਇਹ ਬੇਨਤੀ ਕਰਦਾ ਹੈ, ਅਤੇ sftp ਸਬਸਿਸਟਮ ਲਾਈਨ ਪੁਸ਼ਟੀ ਕਰਦੀ ਹੈ ਕਿ ਆਧੁਨਿਕ ਪਾਥ ਵਰਤੋਂ ਵਿੱਚ ਹੈ। scp -O ਪੁਰਾਣੇ ਪ੍ਰੋਟੋਕੋਲ ਨੂੰ ਉੱਥੇ ਜ਼ਬਰਦਸਤੀ ਲਾਗੂ ਕਰਦਾ ਹੈ ਜਿੱਥੇ ਇਹ ਸਮਰਥਿਤ ਅਤੇ ਸੱਚਮੁੱਚ ਲੋੜੀਂਦਾ ਹੈ, ਅਤੇ ਆਪਣੇ ਕੋਟ ਨਿਯਮ ਨਾਲ ਵਾਪਸ ਲਿਆਉਂਦਾ ਹੈ। ਇਹ VPN ਵਿਕਲਪ ਨਹੀਂ, ਸਰਵਰ ਉੱਤੇ ਕੁਝ ਸਮਰੱਥ ਕਰਨ ਦਾ ਤਰੀਕਾ ਨਹੀਂ, ਅਤੇ ਹੋਸਟ-ਕੀ ਜਾਂਚ ਢਿੱਲੀ ਕਰਨ ਦਾ ਕਾਰਨ ਨਹੀਂ।
ਸਕ੍ਰਿਪਟ ਦੇ ਇਸ ਉੱਤੇ ਨਿਰਭਰ ਹੋਣ ਤੋਂ ਪਹਿਲਾਂ ਪਾਥ ਦੀ ਜਾਂਚ ਕਰੋ
ਪਾਥ ਸਮੱਸਿਆ ਸਭ ਤੋਂ ਭੈੜੇ ਸਮੇਂ, ਰਾਤ ਨੂੰ ਕਿਸੇ ਦੇ ਨਾ ਦੇਖੇ ਹੋਏ ਸਵੈਚਾਲਿਤ ਕੰਮ ਵਿੱਚ ਸਾਹਮਣੇ ਆਉਂਦੀ ਹੈ। ਪਹਿਲਾਂ ਛੋਟੀ ਫਾਈਲ ਅਤੇ ਕੰਮ ਵੱਲੋਂ ਵਰਤੇ ਜਾਂਦੇ ਠੀਕ ਉਸੇ ਖਾਤੇ ਨਾਲ ਮੰਜ਼ਿਲ ਸਾਬਤ ਕਰੋ, ਅਤੇ ਉਹ ਟੈਸਟ ਕਮਾਂਡ ਕੰਮ ਦੀ ਪਰਿਭਾਸ਼ਾ ਦੇ ਕੋਲ ਰੱਖੋ। ਜੇ ਟੈਸਟ ਨੂੰ ਹੋਰ ਖਾਤਾ ਜਾਂ ਹੋਰ ਡਾਇਰੈਕਟਰੀ ਚਾਹੀਦੀ ਹੈ, ਤਾਂ ਕੰਮ ਨੂੰ ਵੀ ਚਾਹੀਦੀ ਹੋਵੇਗੀ।
ਸਰਵਰ ਪਾਸਾ ਵੀ ਜਾਂਚੋ। grep -i subsystem /etc/ssh/sshd_config ਦਿਖਾਉਂਦਾ ਹੈ ਕਿ SFTP ਸਬਸਿਸਟਮ ਸੰਰਚਿਤ ਹੈ ਜਾਂ ਨਹੀਂ, ਅਤੇ sftp -b /dev/null [email protected] ਸਿਰਫ਼ ਤਦ ਸਫਲਤਾਪੂਰਵਕ ਬਾਹਰ ਨਿਕਲਦਾ ਹੈ ਜਦੋਂ ਉਹ ਸਬਸਿਸਟਮ ਜਵਾਬ ਦਿੰਦਾ ਹੈ। ਜੋ ਹੋਸਟ SSH ਲੌਗਇਨ ਸਵੀਕਾਰ ਕਰਦਾ ਹੈ ਪਰ ਸਬਸਿਸਟਮ ਨਹੀਂ ਰੱਖਦਾ, ਉਹ ਹਰ ਆਧੁਨਿਕ ਟ੍ਰਾਂਸਫਰ ਵਿੱਚ ਫੇਲ੍ਹ ਹੁੰਦਾ ਹੈ, ਜਦੋਂ ਕਿ ਲੌਗਇਨ ਟੈਸਟ ਵਿੱਚ ਪੂਰੀ ਤਰ੍ਹਾਂ ਤੰਦਰੁਸਤ ਦਿਖਦਾ ਹੈ।
ਕਲਾਇੰਟ ਵਰਜ਼ਨ, ਵਰਤੋਂ ਵਿੱਚ ਪ੍ਰੋਟੋਕੋਲ ਅਤੇ ਪੂਰਨ ਰਿਮੋਟ ਪਾਥ ਕੰਮ ਦੇ ਨੋਟਾਂ ਵਿੱਚ ਦਰਜ ਕਰੋ। ਜਦੋਂ ਅਗਲਾ ਅਪਗ੍ਰੇਡ ਕੋਈ ਡਿਫਾਲਟ ਬਦਲੇਗਾ, ਤਦ ਉਹੀ ਨੋਟ ਪੰਜ ਮਿੰਟ ਦੀ ਸੁਧਾਈ ਅਤੇ ਅੰਦਾਜ਼ਿਆਂ ਭਰੀ ਦੁਪਹਿਰ ਵਿਚਕਾਰਲਾ ਫ਼ਰਕ ਹੈ।