Câu trả lời:
Thử:
sftp -o "IdentityFile=keyname" jay@server.name.com
Bạn có thể sử dụng -o
để vượt qua bất kỳ tùy chọn hợp lệ trong ~/.ssh/config
.
IdentityFile
tùy chọn luôn tự động được cung cấp, hãy xem câu trả lời của UtahJarhead về việc đưa nó vào~/.ssh/config
Sao chép khóa PUBLIC của bạn vào máy chủ bằng các phương tiện truyền thống.
Trên máy chủ:
.ssh
nếu nó không tồn tại:[[! -d "$ {HOME} /. ssh"]] && mkdir -p "$ {HOME} /. ssh"
cat /path/to/public_key.pub >> "$ {HOME} /. ssh / ủy quyền"
chmod go-rwx "$ {HOME}" "$ {HOME} /. ssh / ủy quyền_key"
Sau đó, bạn sẽ có thể đăng nhập từ máy khách bằng phím RIÊNG TƯ. Để tự động chuyển khoản, bạn muốn sử dụng tệp bó, đây chỉ là tệp văn bản chứa danh sách các lệnh cần thực hiện.
echo "đặt filename.foo /safe/path/filename.foo" >> /tmp/batchfile.txt sftp -b /tmp/batchfile.txt -oIdentityFile = / path / to / private_key user @ host
Ngoài ra, vui lòng tạo tệp ~ / .ssh / config ở định dạng ssh_config để bạn có thể chỉ cần nhập tệp này trong tương lai:
máy chủ sftp -b /tmp/batchfile.txt
Nội dung mẫu của ~/.ssh/config
Lưu trữ tên_hostname Tên người dùng Danh tính / đường dẫn / đến / private_key
Nếu bạn đang tìm cách thiết lập sftp trên ec2, bài viết này có thể giúp
Tôi đã gặp vấn đề này gần đây và những gì đã làm việc cho tôi trong thiết lập thiết bị đầu cuối mặc định macbook của tôi là như sau
sftp -i ./privateFilePath.key username@url.com
Lưu ý rằng bạn có thể được thăng cấp với FILE KEY RIÊNG TƯ KHÔNG GIỚI HẠN! trong trường hợp bạn cần chạy lệnh này để đảm bảo khóa riêng của bạn không bị người khác truy cập.
chmod 600 privateFilePath.key
Trong một số trường hợp bạn cần đặt sudo trước lệnh, điều này chỉ khi bạn đang làm việc trong một thư mục được bảo vệ bởi quản trị viên
Tôi ước điều đó hữu ích :)
-i
tùy chọn không hoạt động?