yêu cầu thực thi scp không thành công trên kênh 0


11

Tôi đang cố gắng để tập tin SCP từ máy tính này sang máy tính khác nhưng tôi nhận được

yêu cầu thực hiện không thành công trên kênh 0 ".

Tuy nhiên, khi tôi sử dụng SSH, tôi có thể vào máy mà không gặp vấn đề gì. Tôi đang sử dụng chức năng SCP trong Cygwin nếu điều đó có ích.

Những gì tôi tìm thấy khi tìm kiếm trực tuyến đã nói về tệp ".bashrc" tuy nhiên người duy nhất tôi tìm thấy là "bash.bashrc".

Đây là lệnh tôi đã sử dụng:

scp /filelocation/file user@hostname:/folderlocation

Tôi cũng đã thử với địa chỉ IP thay vì tên máy chủ, nhưng tôi có kết quả tương tự.

Tôi đã kiểm tra rằng trang web từ xa có lệnh SCP.

Câu trả lời:


0

Để xem tệp .bashrc (và các tệp khác bắt đầu bằng dấu chấm), bạn cần thực hiện

ls -a

Cách giải quyết đơn giản là đổi tên các tệp .profile, .bashrc, .login, .bash_profile để chúng không được bao gồm. Chúng được gọi là tập tin khởi động shell.

Nếu scp của bạn bây giờ hoạt động, câu trả lời nằm ở một trong những tệp đó.

Về cơ bản, một trong các tệp khởi động shell đang gửi đầu ra trở lại và điều đó làm rối loạn quá trình đàm phán ssl đang diễn ra.

Nó có thể đơn giản như gửi các chuỗi thoát đặc biệt để đặt tiêu đề cửa sổ của bạn. Một thủ phạm khác là lệnh stty.

Bạn chỉ muốn bao quanh đầu ra cho thiết bị đầu cuối khi đăng nhập bằng

if tty -s >/dev/null 2>&1; then
    # here if have a real terminal associated to send stty commands 
    # or other special escape sequences to terminal
fi

0

Tôi đồng ý với strobelight rằng lỗi này thường xuất phát từ các tệp khởi tạo bash .bashrc (và khác).

Có một số cách bash-dựng sẵn để kiểm tra shell tương tác: tham chiếu hướng dẫn bash-scripting nâng cao , tham chiếu serverfault .

Điều tôi thường thấy nhất là kiểm tra $ PS1 khi nào thực hiện đầu ra:

if [ "$PS1" ]; then
    echo "some message"
fi
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.