First boot issues on github

My first download on github and I have the following problem with the command:

dan@dan-netbook :/opt/lampp/htdocs/myProject$ git push origin master error: unable to create directory for .git/refs/remotes/origin/master error: Cannot lock the ref 'refs/remotes/origin/master'. Everything up-to-date 

I am getting this error following the instructions given on github.com. Is anyone familiar with this type of error?

Running a command using sudo:
Permission denied (publickey).
fatal: The remote end hung up unexpectedly

Startup - ssh -v git@github.com returns:

 OpenSSH_5.1p1 Debian-6ubuntu2, OpenSSL 0.9.8g 19 Oct 2007 debug1: Reading configuration data /etc/ssh/ssh_config debug1: Applying options for * debug1: Connecting to github.com [207.97.227.239] port 22. debug1: Connection established. debug1: identity file /home/dan/.ssh/identity type -1 debug1: identity file /home/dan/.ssh/id_rsa type 1 debug1: Checking blacklist file /usr/share/ssh/blacklist.RSA-2048 debug1: Checking blacklist file /etc/ssh/blacklist.RSA-2048 debug1: identity file /home/dan/.ssh/id_dsa type -1 debug1: Remote protocol version 2.0, remote software version OpenSSH_5.1p1 Debian-5github2 debug1: match: OpenSSH_5.1p1 Debian-5github2 pat OpenSSH* debug1: Enabling compatibility mode for protocol 2.0 debug1: Local version string SSH-2.0-OpenSSH_5.1p1 Debian-6ubuntu2 debug1: SSH2_MSG_KEXINIT sent debug1: SSH2_MSG_KEXINIT received debug1: kex: server->client aes128-cbc hmac-md5 none debug1: kex: client->server aes128-cbc hmac-md5 none debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP debug1: SSH2_MSG_KEX_DH_GEX_INIT sent debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY debug1: Host 'github.com' is known and matches the RSA host key. debug1: Found key in /home/dan/.ssh/known_hosts:3 debug1: ssh_rsa_verify: signature correct debug1: SSH2_MSG_NEWKEYS sent debug1: expecting SSH2_MSG_NEWKEYS debug1: SSH2_MSG_NEWKEYS received debug1: SSH2_MSG_SERVICE_REQUEST sent debug1: SSH2_MSG_SERVICE_ACCEPT received debug1: Authentications that can continue: publickey debug1: Next authentication method: publickey debug1: Offering public key: /home/dan/.ssh/id_rsa debug1: Remote: Forced command: gerve danwoods debug1: Remote: Port forwarding disabled. debug1: Remote: X11 forwarding disabled. debug1: Remote: Agent forwarding disabled. debug1: Remote: Pty allocation disabled. debug1: Server accepts key: pkalg ssh-rsa blen 277 debug1: Remote: Forced command: gerve danwoods debug1: Remote: Port forwarding disabled. debug1: Remote: X11 forwarding disabled. debug1: Remote: Agent forwarding disabled. debug1: Remote: Pty allocation disabled. debug1: Authentication succeeded (publickey). debug1: channel 0: new [client-session] debug1: Requesting no-more-sessions@openssh.com debug1: Entering interactive session. debug1: Sending environment. debug1: Sending env LANG = en_US.UTF-8 PTY allocation request failed on channel 0 debug1: client_input_channel_req: channel 0 rtype exit-status reply 0 debug1: client_input_channel_req: channel 0 rtype eow@openssh.com reply 0 ERROR: Hi danwoods! You've successfully authenticated, but GitHub does not provide shell access debug1: channel 0: free: client-session, nchannels 1 Connection to github.com closed. Transferred: sent 2576, received 2904 bytes, in 1.8 seconds Bytes per second: sent 1469.6, received 1656.7 debug1: Exit status 1 
+4
source share
1 answer

It looks like you have a local resolution problem. There is nothing specific to Git for this problem. The hierarchy can contain anything, and these instructions will be exactly the same. By default, Git will perform the umask configuration described later (if it is not overridden by the core.sharedRepository configuration).

In your comments, you said that your user will update the contents of the hierarchy, and you will also have a web server that will read the contents of the hierarchy. I assume that the web server is running under a different user (this is usually the case (for example, Apache works as the httpd user)). In addition, I assume that this is acceptable if other users on the same computer can also read the contents of the hierarchy (the required permission scheme for this configuration is more complicated - it involves using a special group and ensuring that your files and directories this group as their "group owner".

Facts

  • The hierarchy of concern is based on: / opt / lammp / htdocs / myProject
  • The local user dan should be able to modify the contents of the hierarchy as he sees fit.
  • The web server (possibly working as another user) should be able to read the contents of the hierarchy.
  • Everything is fine if other users on the local computer can read the contents of the hierarchy.

Decision

  • Dan will have the <owner> of the entire hierarchy. "The owner of the group does not matter.
  • Give the user ( dan ) read, write and execute permissions for directories and at least read and write permissions for files (some files may be executable if (for example, they are scripts)).
  • Give the group owner the same rights as the user, but without write permission.
  • Grant all "other users the same rights as" user ", but without write permission.

Implementation

Initial setup

  • Make dan the owner of the entire hierarchy.

    • Like any user who can "sudo to root" (or run in the root shell without sudo):

       someuser$ sudo chown -R dan /opt/lammp/htdocs/myProject 
  • Grant everyone read permission (and also grant permission for all directories and all files that are already executed by someone, any write permissions are deleted). Also indicate permission dan .

    • Like dan (note the lack of sudo!):

       dan$ chmod -R a-st=rX,u+w /opt/lammp/htdocs/myProject 

    This will separate the setuid / setgid / sticky bits and give the modes 755 and the modes of the executables and all other 644 files.

Current use

To make sure that new files are readable but not writable (by default) by other users (for example, a web server user), you must install your umask when working in this directory.

 dan$ umask 022 

This masks the "group" and other write permissions for new files and directories, but leaves only read and execute.

If you forgot to use this, and your umask is by default more restrictive (or less restrictive), you will need to re-run the chmod (non-sudo!) Command from the "Initial Setup" section. This will reset any rights that are too strict (or too loose).

+13
source

Source: https://habr.com/ru/post/1303403/


All Articles