2010-08-13 5 views
97

Tôi đã sử dụng Putty trên Windows XP và đã sử dụng tệp .ppk để kết nối với máy chủ Linux của tôi (một số máy chủ).Sử dụng tệp PPK trong Mac Terminal để kết nối với kết nối từ xa qua SSH

Trên máy chủ tôi có thư mục sau đây và tập tin ~/.ssh/authorized_keys

bây giờ tôi muốn sử dụng một máy Mac để kết nối thông qua các thiết bị đầu cuối. Tôi đã thiết lập các kết nối từ xa đến các máy chủ theo cách thủ công và muốn biết cách tôi có thể thiết lập bằng cách sử dụng tệp ppk hoặc khóa riêng/công khai trong đó. Xin lưu ý: Tôi đã sử dụng thông tin đăng nhập khóa riêng/khóa công khai từ Windows vì vậy tôi không cần phải tạo khóa mới bằng keygen, tôi chỉ muốn biết cách thiết lập ngay bây giờ mà tôi đã có các khóa rồi. (Nói cách khác, tôi đã có danh sách khóa được ủy quyền trên máy chủ và khóa công cộng và khóa cá nhân).

Trả lời

257

Bạn có thể ssh trực tiếp từ Thiết bị đầu cuối trên máy Mac, nhưng bạn cần sử dụng phím .PEM thay vì phím putty.PPK. Bạn có thể sử dụng PuttyGen trên Windows để chuyển đổi từ .PEM thành .PPK, tôi không chắc chắn về cách khác xung quanh.

Bạn cũng có thể chuyển đổi phím sử dụng putty cho Mac qua port hoặc brew:

sudo port install putty 

hoặc

brew install putty 

này cũng sẽ cài đặt puttygen. Để có được puttygen để ra một tập tin .PEM:

puttygen privatekey.ppk -O private-openssh -o privatekey.pem 

Một khi bạn có chìa khóa, mở một cửa sổ terminal và:

ssh -i privatekey.pem [email protected] 

Chìa khóa tư nhân phải có thiết lập bảo mật chặt chẽ khác SSH phàn nàn. Đảm bảo chỉ người dùng mới có thể đọc được khóa.

chmod go-rw privatekey.pem 
+1

cổng sudo ?? chắc chắn không tồn tại ... ít nhất là trong Mavericks –

+0

@Narven Hãy tham khảo: http://www.macports.org/ –

+21

Bạn cũng có thể cài đặt putty bằng [brew] (http://brew.sh/): 'brew install putty'. Lưu ý rằng chúng tôi không sử dụng 'sudo' ở đây;) – GabLeRoux

17

Chuyển đổi PPK để OpenSSH

OS X: Cài đặt Homebrew, sau đó chạy

brew cài đặt putty

Nơi phím của bạn trong một số thư mục, ví dụ thư mục chính của bạn. Bây giờ chuyển đổi các phím PPK để keypairs SSH: tìm kiếm bộ nhớ cache

Để tạo private key:

cd ~

PuTTYgen id_dsa.ppk -O tư nhân openssh -o id_dsa

và để tạo khóa công khai:

puttygen id_dsa.ppk -O public-opensh -o id_dsa .quán rượu

Move những chìa khóa để ~/.ssh và chắc chắn rằng các điều khoản được thiết lập để tư nhân cho khóa riêng của bạn:

mkdir -p ~/.ssh 
mv -i ~/id_dsa* ~/.ssh 
chmod 600 ~/.ssh/id_dsa 
chmod 666 ~/.ssh/id_dsa.pub 

kết nối với máy chủ ssh

ssh -i ~/.ssh/id_dsa [email protected] 

Port Forwarding để kết nối máy chủ từ xa mysql

ssh -i ~/.ssh/id_dsa -L 9001:127.0.0.1:3306 [email protected] 
5

Có một cách để làm điều này mà không cần cài đặt putty trên máy Mac của bạn. Bạn có thể dễ dàng chuyển đổi tệp PPK hiện có của mình thành tệp PEM bằng PuTTYgen trên Windows.

Khởi chạy PuTTYgen và sau đó tải tệp khóa cá nhân hiện có bằng nút Tải. Từ trình đơn "Chuyển đổi", hãy chọn "Xuất khóa OpenSSH" và lưu tệp khóa cá nhân bằng phần mở rộng tệp .pem.

Sao chép tập tin PEM với máy Mac của bạn và đặt nó vào được chỉ đọc bởi người dùng của bạn:

chmod 400 <private-key-filename>.pem 

Sau đó, bạn sẽ có thể sử dụng ssh để kết nối với máy chủ từ xa của bạn

ssh -i <private-key-filename>.pem [email protected] 
+1

'Có một cách để làm điều này mà không cần cài đặt putty trên máy Mac của bạn. Bạn có thể dễ dàng chuyển đổi tệp PPK hiện có của bạn thành tệp PEM bằng cách sử dụng PuTTYgen trên Windows.' Vì vậy, cách tốt nhất để thực hiện trên mac là thực hiện trên cửa sổ ?! –

+0

Câu trả lời này là một trò đùa – sigi

+1

Thực ra @sigi câu trả lời của tôi thực sự có ý định hữu ích. Mục tiêu chính của câu hỏi như tôi hiểu là kết nối từ máy Mac đến máy chủ Linux bằng tệp .ppk hiện có từ máy Windows. Do người hỏi câu hỏi có quyền truy cập vào máy Windows sau đó chuyển đổi tệp .ppk thành tệp.tệp pem trước khi sao chép nó vào máy Mac chỉ là một giải pháp hợp lệ khi sao chép nó vào máy Mac và chuyển đổi nó ở đó. Tôi đã đề xuất phương pháp này vì một số người có thể không muốn cài đặt thêm phần mềm trên máy Mac của họ mà họ không cần. – dasfrosty