Làm thế nào để thoát khỏi tường lửa, chấp nhận hộp thoại kết nối đến?


101

Tôi đã chấp nhận điều này rất nhiều lần rằng tường lửa nên đã nhớ nó.

Ví dụ, tôi lấy nó cho Eclipse khi khởi động các chương trình java của mình ở chế độ gỡ lỗi ... đôi khi hộp thoại này chỉ được hiển thị rất ngắn, như nửa giây và biến mất. Tôi cũng nhận được nó cho iTunes (khi tôi kích hoạt chia sẻ thư viện của mình) và các chương trình khác, mặc dù tôi đã liệt kê chúng trong bảng tùy chọn Tường lửa (cài đặt trước).


Phiên bản OSX nào bạn đang sử dụng?
Martin Marconcini

@Martin: thêm thẻ con báo tuyết. Tôi sử dụng mới nhất và lớn nhất 1.6.4.
Peter tibraný

Hành vi của tôi rất kỳ quặc Tường lửa nhìn vào chữ ký ứng dụng để nhận ra nó, do đó, bất kỳ thay đổi nào trong ứng dụng, có nghĩa là nó có thể không còn được nhận ra và do đó sẽ gây ra một dấu nhắc mới. Leopard thường thiên về điều này hơn 10.6, tuy nhiên nó vẫn xảy ra từ những gì bạn đang nói.
Martin Marconcini

Tôi đã từng thấy điều này mọi lúc với VirtualBox trên Snow Leopard. Tôi cũng muốn nghe một lời giải thích cho nó.
Ben Wyatt

Rất phiền toái. Tôi thấy cửa sổ bật lên một vài lần mỗi ngày khi làm việc trong Eclipse. Nó chỉ hiển thị trong một giây hoặc lâu hơn. Điều này xảy ra trên Mountain Lion với Eclipse Juno SR2.
Gunnar

Câu trả lời:


12

Có hai lựa chọn ở đây:

  1. Bạn chỉ có thể chọn "Cho phép tất cả" trong tường lửa của mình hoặc đơn giản là tắt nó đi.
  2. Bạn có thể xóa ứng dụng khỏi danh sách, xóa plisttệp cho các ứng dụng đó, chạy chúng và sau đó thêm chúng vào danh sách. Plist chịu trách nhiệm cho rất nhiều hành vi và tôi sẵn sàng đặt cược nâng cấp lên HĐH hoặc ứng dụng có thể khiến "liên kết" bị phá vỡ.

Giới thiệu về plisttệp ... Plist là một loại tệp văn bản đặc biệt chứa các thuộc tính của ứng dụng và các tài nguyên khác, điển hình là HĐH, được sử dụng để giữ lại và sử dụng lại thông tin cần thiết để chạy ứng dụng. plistlà một loại tệp và có nhiều cách sử dụng, thường lưu trữ các tùy chọn của người dùng, nhưng về cơ bản, nó là một tệp XML. Bạn có thể xem liệu có bất kỳ bộ nhớ cache nào, thường là plistcác tệp, cho các ứng dụng được đề cập trong /Library/Caches/System/Library/Caches. Ngoài ra còn có một trong ~/Library/Caches/những điều tồi tệ có thể xảy ra khi mấp máy trong đó, vì vậy hãy để nó một mình. Hệ thống đi vào các thư mục đó vì nhiều lý do và tôi thường dọn sạch hai thư mục đầu tiên tôi liệt kê hoàn toàn khoảng một tháng một lần.


Bạn có thể vui lòng giải thích ý của bạn bằng cách "xóa tệp plist cho các ứng dụng đó" không?
Peter tibraný

2
các tệp plist chứa các cài đặt ứng dụng trong số những thứ khác (và an toàn để xóa chúng, nhưng luôn tạo một bản sao chỉ trong trường hợp). Bất kỳ ứng dụng Cacao nào cũng phải được lập trình để tạo lại bản gốc của chính nó nếu tập tin xóa biến mất. Phần chính cho các ứng dụng thường nằm trong / Users / your_user / Library / Preferences. Các tệp kết thúc bằng phần mở rộng .plist và thường có các tên như: com com.company.appname.plist tựa ví dụ: com.adobe.Phosothop.plist. Bạn có thể di chuyển chúng vào máy tính để bàn của bạn và khởi chạy ứng dụng để tạo lại nó.
Martin Marconcini

Các ~s trong đường dẫn tệp ở trên có tham chiếu thư mục chính của người dùng hiện tại hoặc thư mục gốc không?

2
Downvote vì đây không thực sự là một lựa chọn trong nhiều trường hợp. Nhận xét của user465139 là phù hợp hơn. Mặc dù vẫn là một rủi ro bảo mật - ít nhất là ít hơn việc cho phép tất cả các ứng dụng vào / ra.
sholsinger

1
đồng ý với @sholsinger về điều này, chỉ cần vấp phải điều này cho Mavericks + PHPStorm và việc thay thế tự ký là dễ dàng, nhanh chóng và hiệu quả. Kinh doanh plist này là hơi lộn xộn.
Alex Weber

61
sudo codesign --force --deep --sign - /path/to/application.app

Tôi chưa bao giờ phải tạo chứng chỉ bằng phương pháp này.

Nếu điều đó không có ích, hãy thử mà không có --deepvà không có dấu gạch chéo:

sudo codesign --force --sign - /path/to/application.app

Lưu ý, chỉ để làm cho nó rõ ràng hơn: Sau khi đã áp dụng chữ ký, hãy khởi động ứng dụng, chấp nhận các kết nối đến lần cuối, sau đó thoát và bắt đầu lại để xác minh rằng yêu cầu đã biến mất.


5
Tôi biết vì tôi đã làm nó? Tôi không chắc chắn chính xác những gì bạn yêu cầu ... sử dụng phương pháp đó Tôi đã có thể thoát khỏi cửa sổ bật lên 'chấp nhận thông báo đến' (mặc dù sau khi đăng nhập, bạn sẽ được hỏi một lần cuối cùng, và sau đó không còn nữa ). Nó hoạt động với tôi cho Spotify và AppCode. Nếu bạn cần thông tin đọc trang người đàn ông? chỉnh sửa: Tôi đang sử dụng Ứng viên Yosemite GM v3.0 nếu điều đó giúp bạn.
bất cứ

2
Tôi muốn sửa đổi một chi tiết nhỏ: ứng dụng cần được xử lý trong / path / to / app phải chứa kết thúc .app , tức là: /path/to/ exampl Ứng.app .

4
@IconDaemon Việc sử dụng -after --signcó nghĩa là "ký ad-hoc" được sử dụng; không cần phải có chứng chỉ để sử dụng lệnh đó. Tôi không hiểu tại sao điều này lại mâu thuẫn với việc sử dụng thiết bị đầu cuối. Chạy man codesignđi xem giải thích.
Mike

3
Đơn giản, và làm việc. Tốt hơn nhiều so với câu trả lời được chấp nhận vì tôi không muốn xóa các tập tin plist.
Justin

2
sudo codesign --force --sign - /path/to/application.appđã làm việc cho tôi, nhưng không phải là biến thể được đề xuất bởi tác giả. Tôi tự hỏi nếu --deephoặc dấu gạch chéo hàng đầu là một vấn đề.
Jose Alban

61

Mặc dù liên kết của RedYet rất hữu ích, nhưng chỉ để lưu một vài lần nhấp cho người khác, hãy để tôi tóm tắt lại cách tạo chứng chỉ ký mã và sử dụng nó để ký mã (tái):

  1. Tạo chứng chỉ ký mã của riêng bạn:

    • Trong Truy cập Keychain, Truy cập Keychain> Trợ lý chứng chỉ> Tạo chứng chỉ. Điều này ra mắt Trợ lý chứng chỉ:

    • Tên: Nhập một số chuỗi tùy ý ở đây mà bạn có thể nhớ. Tránh khoảng trắng nếu không bạn sẽ cần phải thoát tên chứng chỉ khi sử dụng codesigntừ dòng lệnh.

    • Loại danh tính: Root tự ký

    • Loại chứng chỉ: Ký mã

    • Chọn hộp "Để tôi ghi đè mặc định", điều này khá quan trọng

    • Số sê-ri: 1 (OK miễn là kết hợp tên chứng nhận / số sê-ri là duy nhất)

    • Thời hạn hiệu lực: 3650 (cho bạn 10 năm)

    • Email, Tên, vv điền vào như bạn muốn.

    • Thông tin cặp khóa: được đặt thành RSA, 2048 bit. Không thực sự quan trọng IMHO.

    • Từ "Tiện ích mở rộng sử dụng khóa" cho đến "Tiện ích mở rộng tên thay thế chủ đề": chấp nhận mặc định.

    • Địa điểm: móc khóa đăng nhập.

    • Khi được tạo, hãy đặt thành "Luôn tin tưởng" trong móc khóa Đăng nhập: nhấp chuột phải vào chứng chỉ, chọn "Nhận thông tin" và trong phần "Tin cậy", đặt "Khi sử dụng chứng chỉ này" thành "Luôn tin cậy".

  2. Ký lại một ứng dụng: codesign -f --deep -s <certname> /path/to/app

  3. Xác minh rằng nó hoạt động: codesign -dvvvv /path/to/app

Thưởng thức!


4
Cảm ơn bạn! Đây là giải pháp duy nhất loại bỏ các hộp thoại nag tường lửa cho tôi. Tôi đang chạy OSX 10.10 Yosemite.
Jason

1
rất đẹp! dễ dàng cho các nhà phát triển đã có chứng chỉ, quá!
cwd

1
một lưu ý phụ: Tôi đã tối đa hóa Thời hạn hiệu lực lên 7300 (ngày), tức là 20 năm. Tôi đã tìm thấy với một số thử rằng đây là số lượng tối đa mà hộp đầu vào chấp nhận (ít nhất là trên OSX Yosemite 10.10.3) - rất tốt, kudos!
DavAlPi

Câu trả lời của ahall đơn giản hơn nhiều và hoạt động với tôi trên OS X 10.10
n1000

Không hoạt động với tôi trên OS X 10.11.1 (15B42)
suzanshakya

15

Điều này liên quan đến việc ứng dụng có được ký hay không. Nếu nó không được ký, ưu tiên sẽ không được ghi nhớ.

Để xem nếu một ứng dụng được ký, hãy làm điều này trong Terminal:

cd path/to/your/app
codesign -vvv Eclipse.app/

Đối với Eclipse - của tôi nói rằng nó hoàn toàn không được ký. Tôi không thể nhận xét thêm về cách ký ứng dụng vì tôi không bận tâm làm điều đó nhưng câu trả lời này trên superuser bao gồm nó:

https://superuser.com/questions/100013/why-does-the-mac-os-x-firewall-dialog-recurringly-pop-up-and-disappear-by-itself#300841


1
Trong khi câu trả lời của ahall đưa ra giải pháp, câu trả lời này giải thích tại sao. Nếu sáp nhập, nó sẽ là câu trả lời hoàn hảo.
not2savvy

3

Tuy nhiên, chỉ cần một lưu ý, nếu bạn đang sử dụng môi trường ảo, hãy nhớ ký ứng dụng đang được sử dụng cho môi trường. Tôi biết điều này là hiển nhiên, nhưng vẫn cần phải nói.


cảm ơn rất nhiều nhưng thay vì một ứng dụng, làm thế nào tôi có thể ký một phiên bản python (giả sử python3.6) trong môi trường conda?
Đậu Agile

1

Tôi đánh giá cao rằng đây là một câu hỏi và trả lời cũ, nhưng nó là lần đầu tiên tôi tìm thấy trên google khi tôi gặp vấn đề tương tự. Chỉ muốn thêm một cái gì đó cho những người khác có thể hạ cánh ở đây.

Để thực thi bất kỳ lệnh Codeign nào được nêu ở đây, cần phải cài đặt các công cụ dòng lệnh xcode. Không có những thứ này, người ta sẽ nhận được một thông báo lỗi:

xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun

Để khắc phục điều này, hãy cài đặt các công cụ với:

xcode-select install

Tôi đã nhận xét về bài đăng của ahall, nhưng tôi không có điểm danh tiếng để làm như vậy.


0

Tôi nhận được hộp thoại này (Canon ccpd) mỗi lần sau khi khởi động máy tính. Mở tường lửa> bảo mật và quyền riêng tư> mở khóa để cho phép thay đổi> nhấp vào nút "Bật chế độ ẩn"> nút nhấp "Chặn tất cả các kết nối đến".

Sau đó, không còn hộp thoại kích thích từ trình điều khiển máy in Canon.


Nhưng ứng dụng sẽ không hoạt động ...
not2savvy

0

Tôi đã thử tất cả các cách trên trong Mac 10.13 và không có gì hoạt động.

Cuối cùng, tôi đã viết một tập lệnh chạy khi đăng xuất kèm theo hook đăng nhập đã tắt tường lửa để khi đăng nhập, nó không còn cần sự cho phép nữa, bằng cách sử dụng delaylauncher đã chạy một tập lệnh khác bật tường lửa.

Tất cả đều tốt


Chào mừng bạn đến hỏi khác nhau! Bạn có thể muốn chia sẻ tập lệnh của mình để những người dùng khác cũng có thể kiếm lợi từ giải pháp của bạn.
Glorfindel

0

Tình huống của tôi liên quan đến hai bản sao Eclipse được cài đặt trên MacOS Mojave 10.14.5. Bản sao đầu tiên được ủy quyền với tường lửa MacOS. Bản sao thứ hai sẽ luôn xuất hiện lời nhắc "chấp nhận kết nối đến". Chọn "Chấp nhận" sẽ tiếp tục hiển thị thông báo sau mỗi lần khởi động lại, rõ ràng cài đặt tường lửa không được cập nhật.

Giải pháp là mở Tùy chọn hệ thống MacOS -> Bảo mật & quyền riêng tư -> Tường lửa, mở khóa màn hình, Tùy chọn tường lửa. Chọn Eclipse.app "Cho phép kết nối đến" và xóa nó bằng nút "-". Lần tiếp theo tôi chọn "Cho phép" đối với dấu nhắc "chấp nhận kết nối đến" của Eclipse là lần cuối cùng.


-2

Giải pháp cho tôi là chỉ cần vô hiệu hóa hoàn toàn tường lửa. Điều cực kỳ phổ biến là tạo ra các phần mềm hỗ trợ web, tất nhiên không được ký bởi vì bạn đang biên dịch chúng một cách tự nhiên.

Mở đèn chiếu với CMD + Spacebar và tìm kiếm "quyền riêng tư" và chọn "Bảo mật và quyền riêng tư". Sau đó chuyển sang tab "Tường lửa" và tắt tường lửa ở đó.


2
Đó dường như là một giải pháp khá kém cho hầu hết mọi người trừ khi họ biết họ đang làm gì. Tường lửa là có lý do chính đáng - ngay cả trên máy Mac.
RedYeti

Tôi nghĩ bạn có nghĩa là "Tường lửa gây phiền nhiễu - ngay cả trên máy Mac". Không phải ai cũng vô học chạy xung quanh trên các mạng wifi mở tại các sân bay với tất cả các cổng của họ mở tải xuống vi rút khỏi các trang web phân phối phần mềm độc hại. Câu trả lời của tôi đã khắc phục chính xác vấn đề và xoay quanh các hộp bật lên khó chịu của Apple. Mỗi khi bạn biên dịch lại một tệp nhị phân sử dụng mạng, bạn sẽ nhận được cửa sổ bật lên hoàn toàn không thể sử dụng được. Cửa sổ bật lên chỉ là một cách gây phiền nhiễu khác mà Apple cố gắng sinh ra những người ít học trong khi vẫn khiến các nhà phát triển khô khan.
anon58192932

1
Tôi đồng ý - không phải ai cũng vô học. Tuy nhiên về chủ đề này, đại đa số mọi người là. Ngay cả những người không nên biết rõ hơn là loại bỏ thành phần bảo mật mạng chính. Ít nhất, cảnh báo mọi người về những hậu quả có thể xảy ra sẽ tốt. Đơn giản chỉ cần tắt tường lửa Tôi sẽ không tính là "sửa chữa" mà là một công việc rất khó khăn.
RedYeti 17/03/2017
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.