Không thể tập tin scp từ máy chủ cục bộ đến máy chủ từ xa - Quyền bị từ chối


0

Tôi đã cố gắng sao chép một số tệp từ máy cục bộ sang máy chủ từ xa.

root@local:~$ scp /var/www/html/file.php root@remote_host:/var/www/html/test/

Kết quả là

scp: / var / www / html / test: Quyền bị từ chối

mật khẩu của root @ remote_host: Quyền bị từ chối, vui lòng thử lại.

Đó là quyền của thư mục trên máy từ xa

drwxrwxr-x

Bất kỳ ý tưởng những gì có thể là vấn đề?


Có nhiều lý do có thể và về cơ bản, bạn chưa thiết lập chính xác các ủy quyền trong remote_host: /. Ssh /. Bạn nên xử lý sự cố cơ bản và báo cáo những gì bạn quan sát để để người khác giúp đỡ.
chingNotCHing

Nhưng nếu chúng không được xác định chính xác, tôi sẽ không thể kết nối và đăng nhập vào máy chủ này nhưng tôi có thể ..
Jason Paddle

ví dụ: nếu có một mục nhập khóa pub của máy chủ lưu trữ cục bộ của bạn trong remote_host: /. ssh / ủy quyền, thì bạn sẽ được xác thực bằng pki thay vì nhập mật khẩu. Tuy nhiên, giả sử nếu ip của máy chủ cục bộ của bạn gần đây đã thay đổi, điều này sẽ thất bại. Tôi khuyên bạn nên tham khảo một hướng dẫn ssh.
chingNotCHing

if there's an entry of your local host's pub key in remote_host:/.ssh/authorized_keys, then you'd be authenticated with pki instead of inputting password.Giờ thì tôi đã hiểu. Tôi chưa bao giờ đăng nhập mà không có mật khẩu trên máy chủ đó. Không, IP của tôi vẫn giống như mọi khi.
Jason Paddle

Câu trả lời:


1

Nếu bạn đăng nhập với quyền root thì root có tất cả các quyền được cho phép, bất kể quyền trên bất kỳ thư mục nào (chỉ có thể loại trừ nếu thư mục có cờ bất biến hệ thống trên chflags (1))

Bạn chỉ cung cấp mật khẩu sai hoặc máy chủ từ xa chỉ sử dụng xác thực khóa chung.


Cảm ơn câu trả lời. or remote host used public key authentication onlyTôi không quen với điều này. Tôi có thể đăng nhập bằng root mà không gặp vấn đề gì nhưng tôi có thể sao chép.
Jason Paddle

Ngoài ra mật khẩu không sai trên 100%.
Jason Paddle

Ok, hãy thử rsync -v -e ssh SomeLocalFile root@remoteHost:~. Có SomeLocalFilesao chép vào nhà của root? Cũng thử which scpvà kiểm tra quyền trên đường dẫn thành lập scptrên máy chủ từ xa
Alex

3

Những lý do có thể khác nhau, tất nhiên.

Câu trả lời rõ ràng nhất là, vì lý do này hay lý do khác, bạn không thể được xác thực bởi hệ thống từ xa. Tuy nhiên, vì bạn đang xuất các quyền thư mục trên hệ thống từ xa, tôi giả sử bạn có quyền và khả năng truy cập nó bằng một số phương tiện (nhưng có lẽ không phải bằng ssh).

Vì vậy, điều đầu tiên cần làm là ssh vào máy và đảm bảo rằng bạn thực sự có thể ghi vào vị trí đó (mà bạn có thể đã thử):

ssh root@remote_host
cd /var/www/html/test/
touch scratch

Nếu bạn có thể thấy các tập tin trống đầu, thì bạn biết bạn có thể viết.

Giả sử bạn có thể truy cập hệ thống đúng cách nhưng ở trên không hoạt động, cũng có thể thực sự không có quyền ghi trên thư mục. Một ví dụ sẽ là nếu thư mục trên máy từ xa nằm trong hệ thống tệp được gắn kết của một loại nhất định, ví dụ NTFS (sẽ không cung cấp cho bạn các chế độ loại UNIX đáng tin cậy) và kernel đặt nó ở chế độ chỉ đọc vì nó không Được gắn thông qua cầu chì để cấp quyền ghi. Bạn cần kiểm tra kỹ hơn các cài đặt cục bộ, nhưng đây sẽ là một thiết lập rất bất thường trừ khi nó mới (hoặc được thiết kế theo cách đó).

Gỡ lỗi hệ thống từ đây sẽ là khó khăn đối với tôi, vì vậy tôi sẽ chỉ cho bạn một phương pháp thay thế để thử. Nếu bạn có thể truy cập hệ thống thông qua ssh và ghi các tệp từ bên trong hệ thống, thì một cách để làm điều đó chỉ là làm theo cách ngược lại, nếu máy tính cục bộ của bạn không nằm sau tường lửa, v.v.

Bạn có thể dễ dàng tìm thấy IP của máy tính mà bạn đã sử dụng mà không cần chuyển sang thiết bị đầu cuối khác. Chúng ta hãy biến nó thành một biến môi trường cho đơn giản:

export IP="`echo $SSH_CLIENT | awk '{print $1}'`"

Tôi thường bao gồm dòng này, ví dụ, ~ / .bashrc vì tôi thấy nó tiện dụng.

Trong mọi trường hợp, sau đó

scp user@$IP:/var/www/html/file.php /var/www/html/test/

Tất nhiên, nếu bạn muốn chạy một chương trình để thực hiện các cập nhật này tự động trên máy cục bộ, điều này sẽ không giải quyết được vấn đề của bạn! Có nhiều cách để giải quyết điều đó bằng cách gọi các lệnh thông qua SSH (vì vậy bạn sẽ gọi một scp qua ssh, có vẻ phản trực giác); tuy nhiên, để nó hoàn toàn tự động, bạn cần thiết lập khóa ssh và không tạo mật khẩu cho khóa. Đây không phải là điều tôi muốn giới thiệu cho quyền truy cập root vào máy và một số loại gỡ lỗi với ssh của máy từ xa cần phải được thực hiện đó là chặn scp.


Cảm ơn vì câu trả lời này. Vì vậy, tôi đã cố gắng quay trở lại trong khi tôi đăng nhập vào máy từ xa. Khi tôi viết scp user@myip:/var/www/html/file.php /var/www/html/test/tất nhiên tôi thay đổi user@myipvới thực tế không có gì xảy ra. Chỉ cần treo ở đó và chấm trắng nhấp nháy trong bảng điều khiển ..
Jason Paddle

[root@remote_host /var/www/html/test ]# touch test, [root@remote_host /var/www/html/test ]# ls -al, -rw-r--r-- 1 root root 0 Jul 23 14:55 test.. vì vậy tôi có thể tạo ra tập tin trong thư mục
Jason Paddle

Xác nhận cổng 22 được sử dụng? nmap -PN localhosttrong đó localhost là nguyên văn. Hãy nhớ rằng nó hoạt động như thế này: ssh -p 22scp -P 22cho cổng 22 (mặc định). Trường hợp của p và P không đối xứng. Tôi nghĩ không có vấn đề gì, nhưng bạn có thể không đề cập chi tiết về máy chủ của bạn. Nếu cổng là 22, bạn có thể sử dụng các mục sau với các trường mục tiêu và vị trí giống hệt với scp, về cơ bản:alias scpresume="rsync --partial --progress --rsh=ssh -e 'ssh -p 22'"
trả lời
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.